`
ariyue
  • 浏览: 345378 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Spring框架集成FreeMarker

阅读更多
一、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 集成 freemarker

    **Spring MVC3 集成 ...综上所述,Spring MVC3集成FreeMarker是一个常见的Web开发实践,通过这种方式,开发者可以将关注点集中在业务逻辑和数据处理上,而将视图的渲染交给FreeMarker,提高开发效率和代码质量。

    Spring boot集成freemarker,swagger,druid,mybatis

    Spring Boot 是一个快速开发框架,它简化了基于Spring的应用程序的初始设置和配置。这个项目集成了多个常用组件,包括Freemarker、Swagger、Druid和MyBatis,旨在提供一个全面的微服务开发环境。 **Freemarker** 是...

    Spring3.1整合FreeMarker2.3.19

    标题“Spring3.1整合FreeMarker2.3.19”指的是在Spring 3.1版本的框架中集成FreeMarker 2.3.19模板引擎的过程和相关知识点。FreeMarker是一个开源的Java库,用于生成动态HTML、XML或其他类型的文本,常用于Web应用...

    Spring+Freemarker 使用163发HTML格式的邮件

    标题 "Spring+Freemarker 使用163发HTML格式的邮件" 涉及到的主要知识点是使用Spring框架集成Freemarker模板引擎来发送HTML格式的邮件,通过163邮箱服务实现。以下是对这些技术的详细介绍: 1. **Spring框架**: ...

    Spring 使用Freemarker发送邮件的一个简单模板(代码不完整)

    标题中的“Spring 使用Freemarker发送邮件”涉及的是在Java开发中使用Spring框架集成Freemarker模板引擎来创建和发送电子邮件。Spring框架提供了一个强大的邮件服务接口,可以方便地与各种邮件服务器进行交互,而...

    spring mvc +freemarker不错的mvc搭配

    Spring MVC 是一个强大...在Spring MVC中集成FreeMarker,首先需要在项目的配置文件(如`servlet-context.xml`)中配置FreeMarker视图解析器。这通常包括指定模板目录、编码格式和是否缓存模板等设置。例如: ```xml ...

    springboot集成freemarker和shiro框架

    Apache Shiro是一个强大且易用的Java安全框架,处理认证、授权、加密和会话管理,与Spring等其他框架集成良好。 **四、集成Shiro** 1. 添加依赖:在`pom.xml`中添加Shiro依赖: ```xml &lt;groupId&gt;org.apache.shiro...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    首先,SpringMVC是Spring框架的一个模块,主要用于构建Web应用的Model-View-Controller(MVC)架构。它提供了处理HTTP请求、数据绑定、验证和异常处理等功能,使得开发者可以专注于业务逻辑,而不是底层的细节实现。...

    struts1+spring+hibernate+freemarker一个小例子

    Spring框架则是一个全面的企业级应用开发框架,它不仅提供了IoC(控制反转)和AOP(面向切面编程)等核心特性,还包含了数据访问、Web、事务管理等多种模块。在这个例子中,Spring可能被用来管理对象的生命周期和...

    spring MVC + freeMarker

    在Spring MVC中集成FreeMarker的步骤通常包括以下几个: 1. 添加依赖:在项目的pom.xml或build.gradle文件中,需要添加FreeMarker的相关依赖库。 2. 配置Spring MVC:在Spring的配置文件(如:applicationContext....

    Spring MVC and FreeMarker Sample

    Spring MVC是Spring框架的一部分,它是一个强大的Web应用程序开发模型,用于构建灵活、可维护的Java Web应用。而FreeMarker则是一个模板引擎,允许开发者将逻辑代码与呈现逻辑分离,使前端展示更加简洁易懂。在本...

    springboot集成freemarker入门案例

    在本文中,我们将深入探讨如何将Spring Boot与FreeMarker模板引擎集成,以便为Web应用程序创建动态、可定制的视图。这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal...

    spring与freemarker整合 示例源码

    首先,Spring框架提供了对多种视图技术的支持,包括JSP、Thymeleaf和Freemarker等。整合Freemarker主要是为了让Spring能够理解并处理Freemarker模板文件,从而动态生成HTML内容。 1. **集成步骤**: - 添加依赖:...

    hello freemarker

    在Web开发中,Spring框架集成Freemarker作为视图层技术,允许我们创建`.ftl`文件作为视图模板,结合控制器返回的数据模型,自动生成响应页面。 压缩包文件`freemarkertest`可能包含了测试Freemarker模板和相关代码...

    spring mvc freemarker 简单例子

    Spring MVC 是一个基于Spring框架的Model-View-Controller架构,用于构建高效、灵活的Web应用程序。而Freemarker 是一款强大的模板引擎,它与后端数据模型相结合,生成动态HTML或其他格式的文档。 在Spring MVC中,...

    轻量级Java持久层框架MiniDAO:基于SpringJDBC与FreeMarker的源码实现

    MiniDAO是一个基于SpringJDBC和FreeMarker技术的轻量级Java持久层框架。它以简洁的设计理念实现了SQL的分离和逻辑标签功能,与Mybatis的操作体验相媲美,同时能够无缝集成至Spring Boot项目。 技术构成: - 主要...

    maven2项目集成springmvc、spring3、freemarker、ibatis和EasyUI实例

    在本项目中,我们主要关注的是一个基于Maven2构建的Web应用,它集成了多个流行的技术栈,包括Spring MVC、Spring3、Freemarker、iBatis和EasyUI。这个项目不仅是一个实际运行的应用,同时也非常适合初学者作为学习和...

    Struts2、Spring、Freemarker自定义标签

    此外,Spring还提供了丰富的模块,包括Spring MVC、Spring JDBC、Spring ORM等,支持Web开发、数据访问以及与各种ORM框架集成。 Freemarker作为模板引擎,与Struts2和Spring很好地协同工作。它使用简单的语法来表示...

    整合 freemarker +spring security + spring MVC + spring DATA jpa 前端jtable 简单的crud

    **Spring Security** 是Spring框架的一个子项目,专注于应用安全。它提供了一套全面的安全管理机制,包括身份验证、授权、访问控制等。在本项目中,Spring Security将用于保护Web应用的资源,确保只有经过身份验证和...

    Spring 整合freemarker制作html页面简单demo(附带操作提示).rar

    在 Web 开发中,Spring 框架与 Freemarker 模板引擎的整合是常见的技术组合,尤其对于初学者而言,掌握这一技能能够帮助快速构建动态网页。本教程将通过一个简单的 Demo,向萌新介绍如何使用 Spring 和 Freemarker ...

Global site tag (gtag.js) - Google Analytics