前两篇博客介绍了freemaker是什么以及简单的语法规则,下面我们通过实现一个demo来看在实际应用中如何使用freemaker,本篇博客主要介绍freemaker与spring的整合。
需要的Jar包:freemarker-2.3.15.jar
在已搭建好的spring的配置文件的基础上添加以下代码:
配置文件:
1 <!-- 一定要放在viewResolver的前面,这样就先去找freemarker的 --> 2 3 <beanid="freemarkerConfig" 4 5 class="org.springframework.web.servlet 6 7 .view.freemarker.FreeMarkerConfigurer"> 8 9 <propertyname="templateLoaderPath" value="/WEB-INF/ftl/"/> 10 11 </bean> 12 13 <beanid="viewResolver" 14 15 class="org.springframework.web.servlet 16 17 .view.freemarker.FreeMarkerViewResolver"> 18 19 <property name="cache"value="true"/> 20 21 <property name="prefix"value=""/> 22 23 <property name="suffix"value=".ftl"/> 24 25 <property name="contentType"value="text/html; charset=UTF-8"/> 26 27 </bean> 28 29 <bean 30 31 class="org.springframework.web.servlet 32 33 .view.InternalResourceViewResolver"> 34 35 <property name="viewClass" 36 37 value="org.springframework.web.servlet.view.JstlView"/> 38 39 <property name="prefix"value="/WEB-INF/jsp/" /> 40 41 <property name="suffix"value=".jsp" /> 42 43 </bean>
java文件:
package org.fre.controller; importorg.springframework.stereotype.Controller; importorg.springframework.ui.Model; importorg.springframework.web.bind.annotation.RequestMapping; @Controller public classHelloController { @RequestMapping("/hello") public String hello(Model model) { model.addAttribute("username", "张三"); return "hello"; } @RequestMapping("/world") public String helloworld(Model model) { model.addAttribute("username","李四"); return "world"; } }
ftl文件:
1 <html> 2 <head> 3 <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"> 4 <title>Inserttitle here</title> 5 </head> 6 <body> 7 <h1>${username}</h1> 8 </body> 9 </html>
jsp文件:
<%@ pagelanguage="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE htmlPUBLIC "-//W3C//DTD HTML 4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Insert titlehere</title> </head> <body> ${username } </body> </html>
访问时一个显示张三,一个显示李四。至此,整合成功了。通过对比ftl文件和jsp文件,发现大同小异,ftl文件编写与jsp文件编写区别不大,所以比较容易上手使用。