介绍freemarker:
官方文档是这样介绍的:
Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates……..
想看更多: Freemarker官网
大致意思就是:
Freemarker是一个模板引擎,一个Java库自动文本输出基于模板和数据变化。。。
特性:
a. 强大的模板语言.
b. 多用途轻依赖
c. 国际化
d. XML处理能力
e. 通用的数据模型
开始配置:
本章介绍的是Freemarker集成到SpringMVC
springmvc.xml配置:
<!-- 配置视图解析器 -->
<bean id="freemarkerResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="order" value="1" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=utf-8" />
<!-- <property name="viewClass">
<value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
</property> -->
</bean>
<!-- ===================================================== -->
<!-- ViewResolver For FreeMarkerConfigurer -->
<!-- ===================================================== -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/view/</value>
</property>
<property name="freemarkerSettings"><!-- 设置FreeMarker环境属性 -->
<props>
<prop key="template_update_delay">5</prop><!--刷新模板的周期,单位为秒 -->
<prop key="default_encoding">UTF-8</prop><!--模板的编码格式 -->
<prop key="locale">UTF-8</prop><!-- 本地化设置 -->
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.####</prop>
<prop key="boolean_format">true,false</prop>
<prop key="whitespace_stripping">true</prop>
<prop key="tag_syntax">auto_detect</prop>
<prop key="url_escaping_charset">UTF-8</prop>
</props>
</property>
</bean>
注意:
很多人在用Freemarker做模板引擎的时候可能会经常犯的一个错误:
因为我们在配置视图解析器的时候一般会配置前缀prefix, 如下:
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".ftl"></property>
</bean>
但是: 当我们用freemarker做模板引擎的时候配置了这段代码:
<property name="templateLoaderPath">
<value>/WEB-INF/view/</value>
</property>
所以prefix就不用配置了(不然会报错)。
然后就是写你业务层的代码。。。。。。
控制层代码(例子):
@RequestMapping("userList")
public String findList(ModelMap modelMap){
List<User> findAllUser = userService.findAllUser();
modelMap.addAttribute("users", findAllUser);
return "user";
}
视图层部分代码:
<#list users as user>
<tr>
<td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.id}</span></td>
<td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.name}</span></td>
<td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.password}</span></td>
<td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user_index}</span></td>
</tr>
</#list>
结束语: 希望大家多多交流讨论