Freemaker初接触(一) 集成SpringMVC问题

来源:互联网 发布:猪八戒淘宝直播 编辑:程序博客网 时间:2024/05/18 03:16
项目要求用到freemaker,简单的接触了一下。

freemaker的作用是,按照配置好的模板文件.ftl生成html文件。
可单独使用,也可集成到springmvc
freemarker页面解析器 的作用jsp页面解析器作用一样,用于解析返回的modelAndView中的页面。

此处配置存在的问题是,springmvc一般用

   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="order" value="1">
</bean>
    <!--
     <bean id="securityMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <value>
               
            </value>    
        </property>
     </bean>-->
来解析页面。如果返回的是 new ModelAndView(“xxx.ftl”)那么会先解析到这个xxx.ftl为jsp,会一直找不到资源,所以需要加上额外的属性order,配置优先级,将jsp优先级配置为1,后于freemarker,解析器进行解析。但是此时问题还没有解决完,freemarker页面解析器又会将正常的jsp页面作为freemaker的资源进行解析。变相的解决办法为:在freemaker解析器中加入<property name="viewName" valie="XX*">,则freemarker只会去处理以XX开头通配的所有的资源。

废话少说,直接上配置,
<!-- freemarker页面解析器--> 

 <bean id="viewResolver1" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
   <property name="suffix">
     <value>.ftl</value>
   </property>
   <property name="viewClass">
     <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
   </property>
<property name="viewName" valie="XX*">,
 </bean>

 <!-- 配置Freemarker -->
 
 <bean id="freemarkerConfig" 
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
        <property name="templateLoaderPaths">
        <list>
         <value>/WEB-INF/view/</value>
         <value>/WEB-INF/view1/</value>
        </list>
        </property>
        <property name="freemarkerSettings"> 
            <props> 
                <prop key="template_update_delay">0</prop> 
                <prop key="default_encoding">UTF-8</prop> 
                <prop key="number_format">0.##</prop> 
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> 
                <prop key="classic_compatible">true</prop> 
                <prop key="template_exception_handler">ignore</prop> 
            </props> 
        </property> 
       <property name="order" value="0">
    </bean> 


配置好之后,即可正常使用freemakerConfig了
0 1