在spring mvc中配置freemarker,首先你需要在工程中引入包

引入了jar包之后,就可以开始在springmvc的配置文件中,配置freemarker的beans
首先定义视图解析器为freemarker,然后后缀那里可以配置为html那样就可以让html具有jsp的${}取值功能了,当然还有其他很多东西
<bean
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"
p:prefix="/" p:suffix=".ftl">
<property name="cache" value="false" />
<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="requestContextAttribute" value="base"></property>
<property name="order" value="0"></property>
</bean>
这个是定义一些freemarker的属性,注意freemarker假如存在空值是会报错的
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="" />
<property name="defaultEncoding" value="UTF-8" />
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">auto_detect</prop>
<prop key="template_update_delay">5</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
<prop key="classic_compatible">true</prop> <!-- 空值处理 -->
<!-- <prop key="auto_import">/ftl/tags/index.ftl as p,/ftl/spring.ftl as s</prop> -->
</props>
</property>
</bean>
xml配置完了之后,就是可以开始写测试控制器和页面了。
我这里写了个测试的控制器,传给页面几个值,然后在页面那里采用 ${msg}的格式进行取值
@RequestMapping(value = "test3")
public ModelAndView test3(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mav = new ModelAndView("manager/test3");//
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
mav.addObject("msg", "shenfeng");
mav.addObject("list", list);
return mav;
}
这个是测试的html,本来是写了个循环的,可是后面你好像给我搞没了,也就没写。freemarker的输出语句用法百度一下就能了解
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${msg}</title>
</head>
<body>
${msg} ftl
</body>
</html>
运行tomcat,经过测试你就可以在浏览器看到结果
这种视图模板大大的提高了html的灵活性,我在工作中感觉有了这种东西,有时候html代码都可以让他自动生成,提高开发效率。
配置这个东西相对来说比较简单,应该可以很快的就学会