电竞比分网-中国电竞赛事及体育赛事平台

分享

Spring框架集成FreeMarker

 Blex 2012-02-24

Spring框架集成FreeMarker  

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

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

 

1、配置FreeMarkerConfigurer

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

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

可以通過為freemarkerSettings屬性設置template_update_delay達到這一目的。例如:

    <property name="freemarkerSettings">

      <props>

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

      </props>

    </property>

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

 

2、解析FreeMarker視圖

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

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

  </bean>

 

將請求和會話屬性作為變量暴露給FreeMarker模板使用。要做到這一點,可以設置exposeRequestAttributes或者exposeSessionAttributestrue

  <property name="exposeRequestAttributes">

      <value>true</value>

    </property>

    <property name="exposeSessionAttributes">

      <value>true</value>

    </property>

 

使用這些宏,必須設置FreeMarkerViewResolverexposeMacroHelpers屬性為true

    <property name="exposeSpringMacroHelpers">

      <value>true</value>

    </property>

 

3、FreeMarker中綁定表單域

如:

<@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 />

 這一行會在模板中導入SpringFreeMarker宏。

 

二、參閱:Spring Framework reference 2.0.5 參考手冊中文版

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

 

1、Context 配置

<!-- 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  FreeMarker 宏命令的支持, 將這個屬性設為true  -->
  <property name="exposeSpringMacroHelpers" value="true"/>
 
</bean>

 

2、創(chuàng)建模板

3、高級配置

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>

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多