zoukankan      html  css  js  c++  java
  • Spring框架集成FreeMarker

    一、Spring in Action (转自:http://blog.163.com/zhang-_-jie/blog/static/16178437820105821120822/ )
      FreeMarker比Velocity复杂一点点,但这只是它比Velocity的功能强大一点点的结果。FreeMarker提供了对一些常用任务的内置支持,比如日期和数字的格式化,以及去除空白字符。在Velocity中,这些特性只有通过附加工具才能实现。

    1、配置FreeMarkerConfigurer

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

     

      通过freemarkerSettings属性,也能够设置其他FreeMarker的配置。例如,FreeMarker默认每隔5秒检查模板是否被更新,如果已经更新了,就会重新加载并分析模板。但经常检查模板是否更新可能比较耗时。如果你的应用运行在生产模式下,而且你预期模板不会经常更新,则可以将更新的延迟时间延长至一个小时或者更久。

      可以通过为freemarkerSettings属性设置template_update_delay达到这一目的。例如:

    <property name="freemarkerSettings">
          <props>
            <prop key="template_update_delay">3600</prop>
          </props>
    </property>

     

    2、解析FreeMarker视图

    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="suffix"><value>.ftl</value></property>
    </bean>

      将请求和会话属性作为变量暴露给FreeMarker模板使用。要做到这一点,可以设置exposeRequestAttributes或者exposeSessionAttributes为true:

    <property name="freemarkerSettings">
        <props>
            <prop key="template_update_delay">3600</prop>
        </props>
    </property> 

    使用这些宏,必须设置FreeMarkerViewResolver的exposeMacroHelpers属性为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 />
      这一行会在模板中导入Spring的FreeMarker宏。

  • 相关阅读:
    浮动 无刷新 div
    vidalia 更换浏览器代理
    vb 主动 点击 a
    Delphi 资料收集
    用Linux的iptables和Python模拟广域网
    框架资源
    div 边框
    Google App Engine
    mac 雪豹 10.6 五国
    Windows Azure Storage (3) Windows Azure Storage Service存储服务之Blob详解(中)
  • 原文地址:https://www.cnblogs.com/lxl57610/p/7043625.html
Copyright © 2011-2022 走看看