1.在pom文件中添加依赖
<!--freemark-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
2.在springmvc中配置视图解析器
<!-- 注册 FreeMarker 配置类 -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 配置 FreeMarker 的文件编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 配置 FreeMarker 寻找模板的路径 -->
<property name="templateLoaderPath" value="/WEB-INF/views/" />
</bean>
<!-- 注册 FreeMarker 视图解析器 -->
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<!-- 是否在 model 自动把 session 中的 attribute 导入进去 -->
<property name="exposeSessionAttributes" value="true" />
<!-- 配置逻辑视图自动添加的后缀名 -->
<property name="suffix" value=".ftl" />
<!-- 配置响应头中 Content-Type 的指 -->
<property name="contentType" value="text/html;charset=UTF-8" />
</bean>
3.改造前端
1.循环语句foreach
例:
jsp写法(jstl):
<c:forEach items="${pageResult.list}" var="frog">
<tr>
<td>${frog.id}</td>
<td>${frog.name}</td>
</tr>
</c:forEach>
freemarker写法:
<#list (pageResult.list)! as frog">
<tr>
<td>${frog.id}</td>
<td>${frog.name}</td>
</tr>
</#list>
注意:在这里了使用 ! 的原因是防止前面的pageResult.list为空的情况,如果为空,设为默认值为空串
2.引入标签include
jsp写法:
<%@include file="要引入文件的地址"%>
freemarker写法:
<#include "要引入文件的地址">
3.set标签(赋值或设置变量)
jsp写法:
<c:set var="currentMenu" value="permission"/>
freemarker写法:
<#assign currentMenu="permission"/>