基于SSM集成Freemarker模板引擎的方法主要分为以下三步:
1. 导入Freemarker相关依赖包
在pom.xml文件中,我们需要导入Freemarker的依赖包。具体代码如下:
<!-- Freemarker 引擎 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
2. Spring容器集成Freemarker配置
在Spring的配置文件中,需要配置Freemarker模板引擎的Bean。具体代码如下:
<!-- Freemarker 配置 -->
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/views/ftl/"/> //模板文件所在的目录
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">${symbol_dollar}{${symbol_dollar}{</prop>
</props>
</property>
</bean>
<!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="text/html;charset=UTF-8"/> //设置页面字符编码
<property name="prefix" value=""/> //页面文件所在的目录,在模板引擎中已经指定了,因此此处不需要再指定
<property name="suffix" value=".ftl"/> //页面文件的后缀
<property name="order" value="0"/> //优先级,数字越小优先级越高
</bean>
3. 控制器中使用Freemarker模板引擎
在控制器中,需要返回Freemarker所对应的视图名称,同时需要设置视图中所需要的数据。具体代码如下:
@RestController
public class UserController {
@Autowired
UserService userService;
@RequestMapping(value = "/user/{id}")
public ModelAndView getUser(@PathVariable("id") Integer id) {
ModelAndView mav = new ModelAndView();
mav.addObject("user", userService.getUserById(id)); //设置数据
mav.setViewName("user"); //设置视图名称,不需要输入后缀.ftl,即直接使用名称即可
return mav;
}
}
示例一
假设我们有一个User实体类,包含id、name和age三个字段。在控制器中展示该用户的信息。在指定的模板文件user.ftl中,我们可以使用以下代码获取该用户的信息:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户信息</title>
</head>
<body>
<h2>用户信息详情</h2>
<ul>
<li>ID:${user.id}</li>
<li>姓名:${user.name}</li>
<li>年龄:${user.age}</li>
</ul>
</body>
</html>
示例二
假设我们需要展示用户列表信息,对应的实体类为List
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<h2>用户列表</h2>
<ul>
<#list userList as user>
<li>
ID:${user.id};姓名:${user.name};年龄:${user.age}
</li>
</#list>
</ul>
</body>
</html>
在控制器中,我们需要返回一个List${userList}
获取该数据。具体代码如下:
@RestController
public class UserController {
@Autowired
UserService userService;
@RequestMapping(value = "/user/list")
public ModelAndView getUserList() {
ModelAndView mav = new ModelAndView();
mav.addObject("userList", userService.getUserList()); //设置数据
mav.setViewName("userList"); //设置视图名称,不需要输入后缀.ftl,即直接使用名称即可
return mav;
}
}
以上就是基于SSM集成Freemarker模板引擎的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于SSM 集成 Freemarker模板引擎的方法 - Python技术站