引进freemarker的包
最近Spring项目的views使用了freemarker这个模板渲染引擎,Spring mvc使用freemarker需要在pom.xml(maven包管理配置)引入一下包:
<!-- 引入Freemarker开包 -->
<!-- 需要这个包, 因为在配置springmvc freemarker时, 需要用到该包的类 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
配置freemarker
为了方便管理,我们把freemarker的配合信息写入application-freemaker.xml里,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- freemarker的配置 -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 指定FreeMarker模板文件目录 -->
<property name="templateLoaderPath" value="/WEB-INF/views/"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="freemarkerSettings">
<props>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>
<!-- FreeMarker视图解析 在这里配置后缀名ftl和视图解析器。。 -->
<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="suffix" value=".ftl"/>
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="exposeRequestAttributes" value="true"/>
<property name="requestContextAttribute" value="request"/>
</bean>
</beans>
简单用法
插入字符串
直接使用${}即可,比如${userName},注意这个使用要保证值必须为String类型,也不能为null。
判断
判断的指令如下:
<#if option == 0>
<#elseif option == 1>
<#else>
</#if>
注意option必须为boolean,否则会有异常。
列表(list)循环
<#list statusOptions as option>
${option}
</#list>
富文本
不展示为html,直接渲染为普通字符串:
<#escape x as x?html>
${value}
</#escape>
展示为富文本:
<#escape x as x?html>
<#noescape>${description}</#noescape>
</#escape>
目前就用到了这些,后续再有其他用法,再进行更新。