zoukankan      html  css  js  c++  java
  • springmvc集成Freemarke配置的几点

    项目结构图


    废话不多说, 集成步骤:


    1.web.xml  spring-mvc配置


    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.5"   
    3.     xmlns="http://java.sun.com/xml/ns/javaee"   
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    7.   <welcome-file-list>  
    8.     <welcome-file>upload.jsp</welcome-file>  
    9.   </welcome-file-list>  
    10.    <context-param>  
    11.     <param-name>contextConfigLocation</param-name>  
    12.         <param-value>classpath:com/springfreemark/config/spring/spring-core.xml</param-value>  
    13.     </context-param>  
    14.   <listener>  
    15.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    16.   </listener>  
    17.    <servlet>    
    18.      
    19.      
    20.     <servlet-name>spring-mvc</servlet-name>    
    21.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    
    22.     <init-param>    
    23.         <param-name>contextConfigLocation</param-name>    
    24.         <param-value>classpath:com/springfreemark/config/spring/springmvc-servlet.xml</param-value>    
    25.     </init-param>    
    26.     <load-on-startup>1</load-on-startup>    
    27.   </servlet>  
    28.   <servlet>  
    29.     <description>This is the description of my J2EE component</description>  
    30.     <display-name>This is the display name of my J2EE component</display-name>  
    31.     <servlet-name>FreekMarkerServlet</servlet-name>  
    32.     <servlet-class>com.springfreemark.web.servlet.FreekMarkerServlet</servlet-class>  
    33.   </servlet>  
    34.     
    35.       
    36.   <servlet-mapping>    
    37.     <servlet-name>spring-mvc</servlet-name>    
    38.     <url-pattern>/</url-pattern>    
    39.   </servlet-mapping>  
    40.   <servlet-mapping>  
    41.     <servlet-name>FreekMarkerServlet</servlet-name>  
    42.     <url-pattern>*.ftl</url-pattern>  
    43.   </servlet-mapping>    
    44. </web-app>  


    2. spring-mvc 配置文件


    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.     xmlns:p="http://www.springframework.org/schema/p"  
    5.     xmlns:context="http://www.springframework.org/schema/context"  
    6.     xmlns:mvc="http://www.springframework.org/schema/mvc"  
    7.     xsi:schemaLocation="       
    8.            http://www.springframework.org/schema/beans       
    9.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd       
    10.            http://www.springframework.org/schema/context       
    11.            http://www.springframework.org/schema/context/spring-context-3.0.xsd      
    12.            http://www.springframework.org/schema/mvc       
    13.            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
    14.            http://www.springframework.org/schema/tx  
    15.            http://www.springframework.org/schema/tx/spring-tx.xsd">  
    16.   
    17.     <context:component-scan base-package="com.springfreemark.web" />  
    18.     <mvc:annotation-driven />  
    19.     <mvc:default-servlet-handler />  
    20.   
    21.     <bean id="fmXmlEscape"  
    22.         class="freemarker.template.utility.XmlEscape" />  
    23.     <bean id="freemarkerConfig"  
    24.         class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
    25.         <property name="templateLoaderPath" value="/WEB-INF/ftl/" />  
    26.         <property name="freemarkerVariables">  
    27.             <map>  
    28.                 <entry key="xml_escape" value-ref="fmXmlEscape" />  
    29.                 <entry key="webRoot" value="${webRoot}"></entry>  
    30.                 <entry key="jsRoot" value="${jsRoot}"></entry>  
    31.             </map>  
    32.         </property>  
    33.         <!-- FreeMarker默认每隔5秒检查模板是否被更新,如果已经更新了,就会重新加载并分析模板。 但经常检查模板是否更新可能比较耗时。如果你的应用运行在生产模式下,而且你预期模板不会经常更新,     
    34.             则可以将更新的延迟时间延长至一个小时或者更久。 可以通过为freemarkerSettings属性设置template_update_delay达到这一目的 -->  
    35.         <property name="freemarkerSettings">  
    36.             <props>  
    37.                 <prop key="template_update_delay">3600</prop>  
    38.                 <prop key="tag_syntax">auto_detect</prop><!-- 设置标签类型 两种:[]  <> 。[] 这种标记解析要快些 -->  
    39.                 <prop key="default_encoding">UTF-8</prop>  
    40.                 <prop key="output_encoding">UTF-8</prop>  
    41.                 <prop key="locale">zh_CN</prop>  
    42.                 <prop key="date_format">yyyy-MM-dd</prop>  
    43.                 <prop key="time_format">HH:mm:ss</prop>  
    44.                 <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>  
    45.                 <prop key="number_format">#</prop><!-- 设置数字格式 以免出现 000.00 -->  
    46.                 <prop key="classic_compatible">true</prop><!-- 可以满足一般需要。默认情况变量为null则替换为空字符串,如果需要自定义,写上${empty!"EmptyValue of fbysss"}的形式即可  -->  
    47.                 <prop key="template_exception_handler">html_debug</prop><!-- ignore,debug,html_debug,rethrow -->  
    48.             </props>  
    49.         </property>  
    50.         <!-- 一下语句可以也可以配置freemarkerSettings属性,代码更为简洁 -->  
    51.         <!-- <property name="freemarkerSettings" ref="freemarkerConfiguration"></property> -->  
    52.     </bean>  
    53.     <!-- 配置freeMarker视图解析器 -->  
    54.   
    55.     <bean id="viewResolver"  
    56.         class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
    57.         <property name="viewClass"  
    58.             value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />  
    59.         <property name="viewNames" value="*.ftl" />  
    60.         <property name="contentType" value="text/html; charset=utf-8" />  
    61.         <property name="cache" value="true" />  
    62.         <property name="suffix" value="" />  
    63.         <property name="order" value="2" />  
    64.     </bean>  
    65.       
    66.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
    67.       <property name="maxUploadSize" value="104857600"/>  
    68.         <property name="maxInMemorySize" value="4096"/>  
    69.    </bean>  
    70. </beans>  


    3.DataController.java 逻辑控制


    1. package com.springfreemark.web.controller;  
    2.   
    3. import javax.servlet.http.HttpServletRequest;  
    4.   
    5. import org.springframework.stereotype.Component;  
    6. import org.springframework.web.bind.annotation.RequestMapping;  
    7.   
    8.   
    9. @Component  
    10. @RequestMapping("/main/")  
    11. public class DataController extends BaseController {  
    12.   
    13.     @RequestMapping("go")  
    14.     public String exec(HttpServletRequest request){  
    15.         request.getSession().setAttribute("name", "springfreemark集成成功");  
    16.           
    17.         return "/demo.ftl";  
    18.     }  
    19. }  


    输入地址 :  http://localhost:8080/SpringFreeMarker/main/go                 

    ok  大功告成


    附上:
    com.springsource.freemarker-2.3.15.jar

    附件列表

    • 相关阅读:
      HDU 3068 Manacher
      HDU 6188最小费用流
      Codeforces Round #442 (Div. 2) Danil and a Part-time Job
      并查集
      HDU 5988最小网络流(浮点数)
      HOJ
      HOJ
      POJ
      POJ
      关于async
    • 原文地址:https://www.cnblogs.com/signheart/p/6595583.html
    Copyright © 2011-2022 走看看