spring mvc 集成freemarker模板

主要使用到的jar 文件:spring mvc +freemarker.jar

 

第一步:spring mvc 集成 freemarker 

 

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <!-- 定义跳转的文件的前后缀 ,视图模式配置-->  
  2. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  3.     <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->  
  4.     <property name="prefix" value="/backstage/jsp/" />  
  5.     <property name="suffix" value=".jsp" />  
  6.     <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>  
  7.      <property name="order" value="1"/>  
  8. </bean>  
  9.   
  10.   <!-- 配置freeMarker视图解析器 -->  
  11.    <bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
  12.        <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>  
  13.        <property name="contentType" value="text/html; charset=UTF-8"/>  
  14.        <property name="exposeRequestAttributes" value="true" />  
  15.        <property name="exposeSessionAttributes" value="true" />  
  16.        <property name="exposeSpringMacroHelpers" value="true" />  
  17.        <property name="cache" value="true" />  
  18.        <property name="suffix" value=".ftl" />  
  19.        <property name="order" value="0"/>  
  20.    </bean>  
  21.      
  22.      <!-- 配置freeMarker的模板路径 -->  
  23.    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
  24.        <property name="templateLoaderPath" value="/backstage/jsp/"/>  
  25.        <property name="freemarkerVariables">  
  26.            <map>  
  27.                <entry key="xml_escape" value-ref="fmXmlEscape" />  
  28.            </map>  
  29.        </property>  
  30.        <property name="defaultEncoding" value="UTF-8"/>  
  31.        <property name="freemarkerSettings">  
  32.            <props>  
  33.                <prop key="template_update_delay">3600</prop>  
  34.                <prop key="locale">zh_CN</prop>  
  35.                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  
  36.                <prop key="date_format">yyyy-MM-dd</prop>  
  37.                <prop key="number_format">#.##</prop>  
  38.            </props>  
  39.        </property>  
  40.    </bean>  
  41.   
  42.    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>  

 

 

【重点:在JSP和Freemarker的配置项中都有一个order property,上面例子是把freemarker的order设置为0,jsp为1。意思是找view时,先找ftl文件,再找jsp文件做为视图。】

 

第二步:controller代码

 

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. package com.wlsq.controller;  
  2.   
  3. import org.springframework.stereotype.Controller;  
  4. import org.springframework.web.bind.annotation.RequestMapping;  
  5. import org.springframework.web.bind.annotation.RequestMethod;  
  6. import org.springframework.web.servlet.ModelAndView;  
  7.   
  8. @Controller  
  9. @RequestMapping(value="/ftl")  
  10. public class FreemarkerTest {  
  11.      @RequestMapping(value="/index",method=RequestMethod.GET)  
  12.         public ModelAndView index() {  
  13.             ModelAndView view = new ModelAndView("TestFreemarker/index");  
  14.             view.addObject("message", "Say hi for Freemarker.");  
  15.             return view;  
  16.         }  
  17.   
  18. }  


第三步:TestFreemarker/index.ftl

 

 

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
    1. <Html>  
    2.     <head>  
    3.         <title>${message}</title>  
    4.     </head>  
    5.     <body>  
    6.         <b>${message}</b>  
    7.     <body>  
    8. </html>  
posted @ 2016-12-29 14:28  专注it  阅读(471)  评论(0编辑  收藏  举报