Spring MVC是一款非常流行的MVC框架,而Freemarker是一款优秀的模板引擎,两者的整合可以使得我们在Web开发中处理模板更加高效、简便。以下是Spring MVC整合Freemarker的攻略及使用方法。
引入依赖
在pom文件中引入freemarker和spring-webmvc依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
配置视图解析器
在Spring MVC配置文件中配置视图解析器,将其解析为Freemarker模板 :
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/> <!--启用模板缓存-->
<property name="prefix" value="/WEB-INF/templates/"/> <!--设置模板路径-->
<property name="suffix" value=".ftl"/> <!--设置模板后缀-->
<property name="contentType" value="text/html;charset=UTF-8"/> <!--设置字符集-->
</bean>
<bean id="freeMarkerConfig" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
<property name="templateLoaderPath" value="/WEB-INF/templates/"/> <!--设置模板路径-->
<property name="defaultEncoding" value="UTF-8"/> <!--设置字符集-->
</bean>
创建Controller
创建一个Controller,用于处理请求,返回Freemarker模板。
@RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelAndView getUser() {
User user = new User(1, "张三", "男", "123456789");
ModelAndView modelAndView = new ModelAndView("user/user");
modelAndView.addObject("user", user);
return modelAndView;
}
创建模板文件
创建user.ftl文件,放置在/WEB-INF/templates/user 下,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>用户信息</title>
</head>
<body>
<h1>用户信息</h1>
<p>ID: ${user.id}</p>
<p>姓名: ${user.name}</p>
<p>性别: ${user.gender}</p>
<p>电话: ${user.phone}</p>
</body>
</html>
使用自定义标签
在模板文件中使用自定义标签可以极大地提高模板的复用性,以下是一个示例。
首先,在Freemarker配置文件中添加以下的配置:
<property name="freemarkerVariables">
<map>
<entry key="myTag" value-ref="myTag"/>
</map>
</property>
<bean id="myTag" class="com.example.MyTag"/>
然后,定义自定义标签类:
public class MyTag extends TemplateDirectiveModel {
@Override
public void execute(Environment environment, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Writer out = environment.getOut();
out.write("自定义标签");
}
}
在模板中添加以下内容:
<#-- 使用自定义标签 -->
<@myTag/>
以上就是Spring MVC整合Freemarker的攻略及使用方法,在这篇教程中我们使用了两个例子,一个是最基础的使用,一个是自定义标签的使用。只要按照以上步骤配置好,即可愉快地使用Freemarker模板引擎。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring MVC整合 freemarker及使用方法 - Python技术站