我的開發環境
框架:springmvc
開發工具:springsource-tool-suite-2.9.0
版本:1.6.0_29
tomcat版本:apache-tomcat-7.0.26
前言:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
簡而言之,Freemarker就是在Jave Web開發中以模板的方式在頁面展示從服務端獲取的信息。
step1.引入jar包
Maven代碼:
<!-- Freemarker --><dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version></dependency><!-- ui.freemarker --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version></dependency>step2.在src/main/resources/conf目錄下新建Freemarker屬性文件freemarker.properties,此屬性文件定義了Freemarker常用的編碼轉換,代碼如下:tag_syntax=auto_detecttemplate_update_delay=2default_encoding=UTF-8output_encoding=UTF-8locale=zh_CNdate_format=yyyy-MM-ddtime_format=HH:mm:ssdatetime_format=yyyy-MM-dd HH:mm:ss
step3.在DispatcherServlet上下文配置文件spring-servlet.xml中添加Freemarker所需的配置,代碼如下:
<!-- 配置Freemarker屬性文件路徑 --><bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name=&qu<a style="color:transparent">来@源gao*daima.com搞@代#码网</a>ot;location" value="classpath:conf/freemarker.properties" /></bean><!-- 配置freeMarker模板加載地址 --><bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <!-- 視圖解析器會在/WEB-INF/ftl/路徑下掃描視圖文件 --> <property name="templateLoaderPath" value="/WEB-INF/ftl/" /> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> </map> </property></bean><bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" /><!-- 配置freeMarker視圖解析器 --><bean id="freemakerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" /> <!-- 掃描路徑內所有以ftl結尾的文件 --> <property name="viewNames"> <array> <value>*.ftl</value> </array> </property> <property name="contentType" value="text/html; charset=UTF-8" /> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> <property name="exposeSpringMacroHelpers" value="true" /> <property name="requestContextAttribute" value="request" /> <!-- 給視圖解析器配置優先級,你可以給之前jsp視圖解析器的值配為2 --> <property name="order" value="1" /></bean>
step4.編寫controller文件和ftl文件
在src/main/java目錄下新建包www.asuan.com.controller,在包下新建HelloWorldController.java,代碼如下:
package www.asuan.com.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class HelloWorldController { @RequestMapping("/helloWorld") public String helloWorld(Model model) { String word0 = "Hello "; String word1 = "World!"; //將數據添加到視圖數據容器中 model.addAttribute("word0",word0); model.addAttribute("word1",word1); return "helloWorld.ftl"; }}
在step3中配置的WEB-INF/ftl路徑下新建helloWorld.ftl,代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h2>${word0}${word1}</h2></body></html>
step5.運行與調試
將工程部署到tomcat并運行,在瀏覽器中訪問:http://localhost:8080/你設置的工程名/helloWorld.htm
運行結果:
更多java Spring整合Freemarker的详细步骤相关文章请关注搞代码!