一、Spring in Action (转自 http://book.csdn.net/bookfiles/167/index.html )
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>
设置template_update_delay为3600(秒),因此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或者exposeSessionAttributes为true:
<property name="exposeRequestAttributes">
<value>true</value>
</property>
<property name="exposeSessionAttributes">
<value>true</value>
</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 Framework reference 2.0.5 参考手册中文版
使用Velocity或FreeMarker需要包含 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>
<!--
也可以把ResourceBundle或XML文件配置到视图解析器中。如果你需要根据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、创建模板
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>
分享到:
相关推荐
**Spring MVC3 集成 ...综上所述,Spring MVC3集成FreeMarker是一个常见的Web开发实践,通过这种方式,开发者可以将关注点集中在业务逻辑和数据处理上,而将视图的渲染交给FreeMarker,提高开发效率和代码质量。
Spring Boot 是一个快速开发框架,它简化了基于Spring的应用程序的初始设置和配置。这个项目集成了多个常用组件,包括Freemarker、Swagger、Druid和MyBatis,旨在提供一个全面的微服务开发环境。 **Freemarker** 是...
标题“Spring3.1整合FreeMarker2.3.19”指的是在Spring 3.1版本的框架中集成FreeMarker 2.3.19模板引擎的过程和相关知识点。FreeMarker是一个开源的Java库,用于生成动态HTML、XML或其他类型的文本,常用于Web应用...
标题 "Spring+Freemarker 使用163发HTML格式的邮件" 涉及到的主要知识点是使用Spring框架集成Freemarker模板引擎来发送HTML格式的邮件,通过163邮箱服务实现。以下是对这些技术的详细介绍: 1. **Spring框架**: ...
标题中的“Spring 使用Freemarker发送邮件”涉及的是在Java开发中使用Spring框架集成Freemarker模板引擎来创建和发送电子邮件。Spring框架提供了一个强大的邮件服务接口,可以方便地与各种邮件服务器进行交互,而...
Spring MVC 是一个强大...在Spring MVC中集成FreeMarker,首先需要在项目的配置文件(如`servlet-context.xml`)中配置FreeMarker视图解析器。这通常包括指定模板目录、编码格式和是否缓存模板等设置。例如: ```xml ...
Apache Shiro是一个强大且易用的Java安全框架,处理认证、授权、加密和会话管理,与Spring等其他框架集成良好。 **四、集成Shiro** 1. 添加依赖:在`pom.xml`中添加Shiro依赖: ```xml <groupId>org.apache.shiro...
首先,SpringMVC是Spring框架的一个模块,主要用于构建Web应用的Model-View-Controller(MVC)架构。它提供了处理HTTP请求、数据绑定、验证和异常处理等功能,使得开发者可以专注于业务逻辑,而不是底层的细节实现。...
Spring框架则是一个全面的企业级应用开发框架,它不仅提供了IoC(控制反转)和AOP(面向切面编程)等核心特性,还包含了数据访问、Web、事务管理等多种模块。在这个例子中,Spring可能被用来管理对象的生命周期和...
在Spring MVC中集成FreeMarker的步骤通常包括以下几个: 1. 添加依赖:在项目的pom.xml或build.gradle文件中,需要添加FreeMarker的相关依赖库。 2. 配置Spring MVC:在Spring的配置文件(如:applicationContext....
Spring MVC是Spring框架的一部分,它是一个强大的Web应用程序开发模型,用于构建灵活、可维护的Java Web应用。而FreeMarker则是一个模板引擎,允许开发者将逻辑代码与呈现逻辑分离,使前端展示更加简洁易懂。在本...
在本文中,我们将深入探讨如何将Spring Boot与FreeMarker模板引擎集成,以便为Web应用程序创建动态、可定制的视图。这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal...
首先,Spring框架提供了对多种视图技术的支持,包括JSP、Thymeleaf和Freemarker等。整合Freemarker主要是为了让Spring能够理解并处理Freemarker模板文件,从而动态生成HTML内容。 1. **集成步骤**: - 添加依赖:...
在Web开发中,Spring框架集成Freemarker作为视图层技术,允许我们创建`.ftl`文件作为视图模板,结合控制器返回的数据模型,自动生成响应页面。 压缩包文件`freemarkertest`可能包含了测试Freemarker模板和相关代码...
Spring MVC 是一个基于Spring框架的Model-View-Controller架构,用于构建高效、灵活的Web应用程序。而Freemarker 是一款强大的模板引擎,它与后端数据模型相结合,生成动态HTML或其他格式的文档。 在Spring MVC中,...
MiniDAO是一个基于SpringJDBC和FreeMarker技术的轻量级Java持久层框架。它以简洁的设计理念实现了SQL的分离和逻辑标签功能,与Mybatis的操作体验相媲美,同时能够无缝集成至Spring Boot项目。 技术构成: - 主要...
在本项目中,我们主要关注的是一个基于Maven2构建的Web应用,它集成了多个流行的技术栈,包括Spring MVC、Spring3、Freemarker、iBatis和EasyUI。这个项目不仅是一个实际运行的应用,同时也非常适合初学者作为学习和...
此外,Spring还提供了丰富的模块,包括Spring MVC、Spring JDBC、Spring ORM等,支持Web开发、数据访问以及与各种ORM框架集成。 Freemarker作为模板引擎,与Struts2和Spring很好地协同工作。它使用简单的语法来表示...
**Spring Security** 是Spring框架的一个子项目,专注于应用安全。它提供了一套全面的安全管理机制,包括身份验证、授权、访问控制等。在本项目中,Spring Security将用于保护Web应用的资源,确保只有经过身份验证和...
在 Web 开发中,Spring 框架与 Freemarker 模板引擎的整合是常见的技术组合,尤其对于初学者而言,掌握这一技能能够帮助快速构建动态网页。本教程将通过一个简单的 Demo,向萌新介绍如何使用 Spring 和 Freemarker ...