Freemaker初接觸(一) 集成SpringMVC問題

項目要求用到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了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章