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宏。

  • 相关阅读:
    鼠标跟随效果 vue或者js通用
    element 多个文件上传多次http请求解决方法
    快速判断数组中值是否重复
    vue-resource+element upload上传(遇到formData总是变为object格式)
    element UI 下拉菜单滚动监听(vue指令)
    echarts环形图自动定位radius
    echarts地图散点高亮弹框制作
    js实现table表格相同内容按需合并
    element ui表格相同内容自动合并
    hadoop yarn
  • 原文地址:https://www.cnblogs.com/lxl57610/p/7043625.html
Copyright © 2011-2022 走看看