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宏。
Spring框架集成FreeMarker的更多相关文章
- Spring Boot 集成 FreeMarker 详解案例(十五)
一.Springboot 那些事 SpringBoot 很方便的集成 FreeMarker ,DAO 数据库操作层依旧用的是 Mybatis,本文将会一步一步到来如何集成 FreeMarker 以及配 ...
- spring mvc 集成freemarker模板
主要使用到的jar 文件:spring mvc +freemarker.jar 第一步:spring mvc 集成 freemarker <!-- 定义跳转的文件的前后缀 ,视图模式配置--&g ...
- spring mvc集成freemarker使用
freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把.但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐. ...
- Spring框架集成mybatis框架的配置(笔记)
<!-- 0.注解扫描 --><!-- 1.导入外部文件 --><!-- 2.数据源 --><!-- 3.session Factory -->< ...
- spring boot 集成freemarker
- 细说shiro之五:在spring框架中集成shiro
官网:https://shiro.apache.org/ 1. 下载在Maven项目中的依赖配置如下: <!-- shiro配置 --> <dependency> <gr ...
- spring mvc集成velocity使用
目前流行的三大页面视图神器是:老牌大哥jsp.后起之秀freemarker和velocity.这里不详细比较这三者的优劣,总体来说,jsp是标配,但后面两个更严格的执行了视图与业务的分离,页面里是不允 ...
- Spring框架系列(5) - 深入浅出SpringMVC请求流程和案例
前文我们介绍了Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那我们如何更好的构建上层的应用呢(比如web 应用),这便是SpringMVC:Spring MVC是Spri ...
- 《经久不衰的Spring框架:SpringMVC 统括》
前言:经久不衰的Spring 这几年,前端技术更新换代速度之快,每一年"最火的前端技术"排行榜都会换一番场景,本当に信じかねる.是"只闻新人笑不见旧人哭",还是 ...
随机推荐
- mysql 按照配置文件启动
有时,我们的机器上面装了很多个mysql,但只有一个3306端口,其余的mysql服务器需要重新指定端口.我们需要多个配置文件来启动它们.那么我们怎么通过指定配置文件的方式来启动呢? 例如,按 ...
- [转帖]Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(下篇)
Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(下篇) http://www.postgres.cn/v2/news/viewone/1/454 原作者:姚延栋 创作时间:201 ...
- mq 探究
一 mq简介(message queue) 消息队列技术是分布式应用间交互信息的一种技术. 消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走 通过消息队列,应用程序可独立地执行-它们不 ...
- Postman和jmeter的区别
1.创建接口用例集(没区别) Postman是Collections,Jmeter是线程组,没什么区别. 2.步骤的实现(有区别) Postman和jmeter都是创建http请求 区别1:postm ...
- Python习题002
作业1:判断某一个字符串是否是小数 def is_float(string): string1 = str(string) if string1.count('.') > 1: #检测字符串小数 ...
- 谈谈Python中pop与remove的用法
remove() 函数用于移除列表中某个值的第一个匹配项. remove()方法语法: list.remove(obj) 如果obj不在列表中会引发 ValueError 错误,通常先使用count ...
- PyCharm 2018.3.3激活(亲测有效)
转自:简书某大佬 https://www.jianshu.com/p/351dee5d7e54 附截图:
- ThreadLocal内存泄漏真因探究(转)
出处: 链接:https://www.jianshu.com/p/a1cd61fa22da ThreadLocal原理回顾 ThreadLocal的原理:每个Thread内部维护着一个ThreadLo ...
- Spring Boot 多个域名指向同一IP
一.需求:直接通过域名访问首页(同一应用下,多个首页,包括PC端.手机端首页) 方法:采用多个域名绑定同一IP下同一应用,不同域名对应不同产品(PC.手机端)的方法,在后台通过拦截器判断 reques ...
- C# Unix时间戳和DateTime类型相互转换
/// <summary> /// 将Unix时间戳转换为DateTime类型时间 /// </summary> /// <param name="d" ...