主要使用到的jar 文件:spring mvc +freemarker.jar

第一步:spring mvc 集成 freemarker

  1. <!-- 定义跳转的文件的前后缀 ,视图模式配置-->
  2. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  3. <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
  4. <property name="prefix" value="/backstage/jsp/" />
  5. <property name="suffix" value=".jsp" />
  6. <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
  7. <property name="order" value="1"/>
  8. </bean>
  9. <!-- 配置freeMarker视图解析器 -->
  10. <bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  11. <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
  12. <property name="contentType" value="text/html; charset=UTF-8"/>
  13. <property name="exposeRequestAttributes" value="true" />
  14. <property name="exposeSessionAttributes" value="true" />
  15. <property name="exposeSpringMacroHelpers" value="true" />
  16. <property name="cache" value="true" />
  17. <property name="suffix" value=".ftl" />
  18. <property name="order" value="0"/>
  19. </bean>
  20. <!-- 配置freeMarker的模板路径 -->
  21. <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  22. <property name="templateLoaderPath" value="/backstage/jsp/"/>
  23. <property name="freemarkerVariables">
  24. <map>
  25. <entry key="xml_escape" value-ref="fmXmlEscape" />
  26. </map>
  27. </property>
  28. <property name="defaultEncoding" value="UTF-8"/>
  29. <property name="freemarkerSettings">
  30. <props>
  31. <prop key="template_update_delay">3600</prop>
  32. <prop key="locale">zh_CN</prop>
  33. <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
  34. <prop key="date_format">yyyy-MM-dd</prop>
  35. <prop key="number_format">#.##</prop>
  36. </props>
  37. </property>
  38. </bean>
  39. <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>

【重点:在JSP和Freemarker的配置项中都有一个order property,上面例子是把freemarker的order设置为0,jsp为1。意思是找view时,先找ftl文件,再找jsp文件做为视图。】

第二步:controller代码

  1. package com.wlsq.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.servlet.ModelAndView;
  6. @Controller
  7. @RequestMapping(value="/ftl")
  8. public class FreemarkerTest {
  9. @RequestMapping(value="/index",method=RequestMethod.GET)
  10. public ModelAndView index() {
  11. ModelAndView view = new ModelAndView("TestFreemarker/index");
  12. view.addObject("message", "Say hi for Freemarker.");
  13. return view;
  14. }
  15. }

第三步:TestFreemarker/index.ftl

    1. <Html>
    2. <head>
    3. <title>${message}</title>
    4. </head>
    5. <body>
    6. <b>${message}</b>
    7. <body>
    8. </html>

spring mvc 集成freemarker模板的更多相关文章

  1. spring mvc集成freemarker使用

    freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把.但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐. ...

  2. spring mvc集成velocity使用

    目前流行的三大页面视图神器是:老牌大哥jsp.后起之秀freemarker和velocity.这里不详细比较这三者的优劣,总体来说,jsp是标配,但后面两个更严格的执行了视图与业务的分离,页面里是不允 ...

  3. Spring Boot 集成 FreeMarker 详解案例(十五)

    一.Springboot 那些事 SpringBoot 很方便的集成 FreeMarker ,DAO 数据库操作层依旧用的是 Mybatis,本文将会一步一步到来如何集成 FreeMarker 以及配 ...

  4. springboot学习笔记:5.spring mvc(含FreeMarker+layui整合)

    Spring Web MVC框架(通常简称为"Spring MVC")是一个富"模型,视图,控制器"的web框架. Spring MVC允许你创建特定的@Con ...

  5. 【转载】Spring MVC 整合 Freemarker

    前言 1.为什么要使用Spring MVC呢? 2.为什么要使用Freemarker呢? 3.为什么不使用Struts2呢? 此示例出现的原因就是发现了struts2的性能太差,所以学习Spring ...

  6. 【FreeMarker】Spring MVC与FreeMarker整合(二)

    前一篇介绍了FreeMarker的基本使用,本例介绍Spring MVC与FreeMarker整合 不熟悉项目搭建,可参考 [FreeMarker]FreeMarker快速入门(一) 整合 1.新建S ...

  7. Spring MVC整合 freemarker

    1.什么是Spring MVC? Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱 ...

  8. Spring MVC集成slf4j-logback

    转自: Spring MVC集成slf4j-logback 1.  Spring MVC集成slf4j-log4j 关于slf4j和log4j的相关介绍和用法,网上有很多文章可供参考,但是关于logb ...

  9. Spring mvc+hibernate+freemarker(实战)

    Spring mvc+hibernate+freemarker(实战) 博客分类: Spring Spring mvchibernatefreemarkerwebjava  今天我为大家做了一个 sp ...

随机推荐

  1. uva1608 Non-boring sequences

    某个序列找到唯一元素后,判断被分成的两边的序列即可问题在于找到唯一元素连续序列,重复元素的问题:感觉很有一般性 查找相同元素用map,last,next存上一个相同元素的位置复杂度计算有点思考:记录l ...

  2. Java文件编译与反编译:javac命令和javap命令

    1.创建一个Test.java文件,并输入内容 public class Test{ private int m; public int inc(){ return m + 1; } } 2.使用ja ...

  3. zabbix4.2学习笔记系列

    写在前面:对zabbix的接触始于对监控的了解,网上比较多zabbix相关博客,比较多基于3系列甚至2系列,最新开发版zabbix4.2版本已经出来,本博客基于4.2版本学习,参考官网4.2版本和网上 ...

  4. MySQL-03 SQL语句设计

    学习要点 SQL语句分类 DML语句 DML 查询语句 SQL语句分类 数据操纵语言(DML):用来操纵数据库中数据的命令.包括:SELECT.INSERT.UPDATE.DELETE. 数据定义语言 ...

  5. HTML基础(五)表单

    表单的工作原理 简单来说就是客户在浏览器输入信息之后,浏览器将用户在表单中的数据进行打包发送给服务器,服务器接收到之后进行处理,如下图 语法 <form> 表单元素</form> ...

  6. SSM框架删除/更新时返回影响条数

    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">    < ...

  7. loadClass和forName 的区别

    类的加载方式 1.隐式加载:new 2.显式加载,loadClass,forName 等 loadClass 和 forName的区别 类的装载过程 1.加载:通过classLoader加载class ...

  8. Xcode导入第三方库图文

    Three20这个与facebook亲戚的开源库是蜚声iPhone开发界,很多App都有它的影子,主要是其真得是功能强大.那么如何将Three20库添加到自己的项目中应用呢?一种是Python命令方式 ...

  9. jQuery闪烁提示,让新消息在网页标题显示

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head& ...

  10. 关于JVM内存模型,GC策略以及类加载器的思考

    JVM内存模型 Sun在2006年将Oracle JDK开源最终形成了Open JDK项目,两者在绝大部分的代码上都保持一致.JVM的内存模型是围绕着原子性(操作有且仅有一个结果).可见性(racin ...