日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Spring框架集成FreeMarker

 Blex 2012-02-24

Spring框架集成FreeMarker  

一、Spring in Action (轉(zhuǎn)自 http://book.csdn.net/bookfiles/167/index.html

FreeMarkerVelocity復(fù)雜一點(diǎn)點(diǎn),但這只是它比Velocity的功能強(qiáng)大一點(diǎn)點(diǎn)的結(jié)果。FreeMarker提供了對(duì)一些常用任務(wù)的內(nèi)置支持,比如日期和數(shù)字的格式化,以及去除空白字符。在Velocity中,這些特性只有通過附加工具才能實(shí)現(xiàn)。

 

1、配置FreeMarkerConfigurer

<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">         ……    </bean>

通過freemarkerSettings屬性,也能夠設(shè)置其他FreeMarker的配置。例如,FreeMarker默認(rèn)每隔5秒檢查模板是否被更新,如果已經(jīng)更新了,就會(huì)重新加載并分析模板。但經(jīng)常檢查模板是否更新可能比較耗時(shí)。如果你的應(yīng)用運(yùn)行在生產(chǎn)模式下,而且你預(yù)期模板不會(huì)經(jīng)常更新,則可以將更新的延遲時(shí)間延長(zhǎng)至一個(gè)小時(shí)或者更久。

可以通過為freemarkerSettings屬性設(shè)置template_update_delay達(dá)到這一目的。例如:

    <property name="freemarkerSettings">

      <props>

        <prop key="template_update_delay">3600</prop>

      </props>

    </property>

設(shè)置template_update_delay3600(秒),因此FreeMarker只有在1個(gè)小時(shí)之后才檢查模板是否更新。

 

2解析FreeMarker視圖

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

    <property name="suffix"><value>.ftl</value></property>

  </bean>

 

將請(qǐng)求和會(huì)話屬性作為變量暴露給FreeMarker模板使用。要做到這一點(diǎn),可以設(shè)置exposeRequestAttributes或者exposeSessionAttributestrue

  <property name="exposeRequestAttributes">

      <value>true</value>

    </property>

    <property name="exposeSessionAttributes">

      <value>true</value>

    </property>

 

使用這些宏,必須設(shè)置FreeMarkerViewResolverexposeMacroHelpers屬性為true

    <property name="exposeSpringMacroHelpers">

      <value>true</value>

    </property>

 

3FreeMarker中綁定表單域

如:

<@spring.bind "command.phone" />

  phone: <input type="text"

      name="${spring.status.expression}"

      value="${spring.status.value}">

  <font color="#FF0000">${spring.status.errorMessage}</font><br>

 

  <@spring.bind "command.email" />

      email: <input type="text"

      name="${spring.status.expression}"

      value="${spring.status.value}">

  <font color="#FF0000">${spring.status.errorMessage}</font><br>

 

4、最后,你還需要做一件事才能使用FreeMarker宏。在所有需要使用<@spring.bind><@spring.bindEscaped>FreeMarker模板的頂部增加以下一行:

   <#import "/spring.ftl" as spring />

 這一行會(huì)在模板中導(dǎo)入SpringFreeMarker宏。

 

二、參閱:Spring Framework reference 2.0.5 參考手冊(cè)中文版

使用VelocityFreeMarker需要包含 velocity-1.x.x.jar freemarker-2.x.jar。另外Velocity還需要 commons-collections.jar。一般把這些jar包放在 WEB-INF/lib 下,這樣可以保證J2EE Server找到它們并加到web應(yīng)用的classpath下。

 

1Context 配置

<!-- freemarker config -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  <property name="templateLoaderPath" value="/WEB-INF/freemarker/"/>
</bean>
 
<!-- 
 
  也可以把ResourceBundleXML文件配置到視圖解析器中。如果你需要根據(jù)Locale來解析不同的視圖,你就得使用resource bundle解析器。.
 
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  <property name="cache" value="true"/>
  <property name="prefix" value=""/>
  <property name="suffix" value=".ftl"/>
  
  <!-- 如果你需要使用Spring 對(duì) FreeMarker 宏命令的支持, 將這個(gè)屬性設(shè)為true  -->
  <property name="exposeSpringMacroHelpers" value="true"/>
 
</bean>

 

2、創(chuàng)建模板

3、高級(jí)配置

4、綁定支持和表單處理

 

 

示例

    <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

        <property name="templateLoaderPath" value="/WEB-INF/config/template/" />

        <property name="freemarkerSettings">

            <props>

                <prop key="template_update_delay">0</prop>

                <prop key="default_encoding">UTF-8</prop>

                <prop key="locale">zh_CN</prop>

            </props>

        </property>

    </bean>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多