springMVC整合Freemarker
1 构建方式 Maven :
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.25-incubating</version>
</dependency>
或者直接添加需要的包:添加freemarker的jar,还需要额外添加spring-content-support的jar包
2 springMvc xml文件添加视图解析等对freemarker的配置
<context:component-scan base-package="你的包明"></context:component-scan>
<mvc:default-servlet-handler />
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 配置freeMarker的模板路径 -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="WEB-INF/ftl/" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<!-- freemarker视图解析器 -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=UTF-8" />
<!-- 此变量值为pageContext.request, 页面使用方法:rc.contextPath -->
<property name="requestContextAttribute" value="rc" />
</bean>
3 写一个User类
public class User{
private String username;
private String password;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
}
4.一个FreeMarkerController类:
@Controller
@RequestMapping("/home")
public class FreeMarkerController
{
@RequestMapping("/index")
public ModelAndView Add(HttpServletRequest request,HttpServletResponse response){
User user = new User(); user.setUsername("myt");
user.setPassword("1234");
List<User> users = new ArrayList<User>();
users.add(user);
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
mv.addObject("users",users);
return mv; }
}
5.然后再WEB-INF/ftl目录下创建一个index.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>another</title>
</head> <body>
<#list users as user> username : ${user.username}
<br/>
password : ${user.password} </#list>
</body>
</html>
6 访问 localhost://项目名称/welcome
输出 user内容