freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把。但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐。这里不讨论velocity,有兴趣的同学可以看下。freemarker虽然比velocity重,但它确实功能强大,比如日期、货币格式化提供了很多转换方法,还一个特色招牌菜就是宏指令,它可以像java里的方法调用一样在页面玩转视图处理。

  这里主要演示下怎么在当今最流行的spring mvc中集成freemarker。首先我们还是引入jar,先在maven的pom文件中加入:

  <dependency>
   <groupId>org.freemarker</groupId>
   <artifactId>freemarker</artifactId>
   <version>2.3.23</version>
  </dependency>

    接下来是在spring mvc的配置文件spring-mvc.xml中引入freemark的相关配置

  <!--配置freemarker视图解析器 -->
   <bean id="freemarkerConfig"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/" />
   </bean>

  <bean id="ViewResolver"
      class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="suffix" value=".html" />
    <property name="contentType" value="text/html; charset=UTF-8" />
   </bean>

  最后修改html文件,把原来velocity的变量名外面再套一个大括号就可以了,当然其他语法格式也需要相应修改,如循环要由foreach改为list:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试桩配置页面</title>
</head>
<body>
<form id="interfaceForm">
<h2 align="center">
<font color="#FF0000">测试桩配置</font>
</h2>
<table
style="width: 1200px; height: 600px; margin-left: 5%; margin-top: 30px;"
border="2px" bordercolor="gray" cellspacing="0px" cellpadding="5px">
<tr height="10%">
<td rowspan="3" width="32%" valign="top" align="center"><font
size="4pt" color="black">接口名称:</font><br /> <br />
<div name="interfaceNames" id="interfaceNames"
style="border: solid 2px pink; width: 350px; height: 520px; overflow: auto;">
<!-- <table>
#foreach($method in $methodKeys)
<tr valign="top" style="height: 25px;">
<td align="center" width="150px"><a
onclick="getMethodContent('$method');">$method</a></td>
<td width="100px" align="left"><a
style="text-decoration: none;"
onclick="deleteInterfaceEntity('$method');">&nbsp;删除</a></td>
</tr>
#end
</table>
-->
<table>
<#list methodKeys as method>
<tr valign="top" style="height: 25px;">
<td align="center" width="150px"><a
onclick="getMethodContent('${method}');">${method}</a></td>
<td width="100px" align="left"><a
style="text-decoration: none;"
onclick="deleteInterfaceEntity('${method}');">&nbsp;删除</a></td>
</tr>
</#list>
</table>
</div></td>
<td>接口名: <input type="text" name="interfaceName"
id="interfaceName" style="width: 400px" /> &nbsp;&nbsp;&nbsp; <input
type="button" value="新增/修改" onclick="generateInterfaceEntity();" /></td>
</tr>
<tr>
<td><font size="4pt" color="black"> 接口报文:</font><br /> <br />
<textarea name="interfaceBody" id="interfaceBody"
style="width: 700px; height: 450px; margin-left: 50px;">
</textarea></td>
</tr>
</table>
</form>
</body>

  启动tomcat,页面的功能展示跟原来是一样的。velocity的集成点击这里spring mvc集成velocity使用,可以比对着看velocity和freemarker的集成,你会发现两者相差无几。其实如果你的项目两者都用到了,是可以同时集成的。

spring mvc集成freemarker使用的更多相关文章

  1. spring mvc 集成freemarker模板

    主要使用到的jar 文件:spring mvc +freemarker.jar 第一步:spring mvc 集成 freemarker <!-- 定义跳转的文件的前后缀 ,视图模式配置--&g ...

  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. Spring MVC集成slf4j-logback

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

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

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

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

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

  9. Spring MVC整合 freemarker

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

随机推荐

  1. Luogu-1975 [国家集训队]排队

    Luogu-1975 [国家集训队]排队 题面 Luogu-1975 题解 题意:给出一个长度为n的数列以及m个交换两个数的操作,问每次操作后逆序对数量 时间,下标和数的大小三维偏序,,,把交换操作看 ...

  2. [SHOI2013]发微博

    Description 刚开通的SH微博共有n个用户(1..n标号),在短短一个月的时间内,用户们活动频繁,共有m条按时间顺序的记录: ​ ! x 表示用户x发了一条微博: ​ + x y 表示用户x ...

  3. C#与C++之间类型对应关系

    //C++中的DLL函数原型为  //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned c ...

  4. CentOS上使用sendmail发送邮件

    设置方法 set from=fromUser@domain.com smtp=smtp.domain.com set smtp-auth-user=username smtp-auth-passwor ...

  5. PlusOne

    问题描述:一个数组每一位代表一个数字的每一位.数字高位在数组的低位.求数字加1后得到新数组. 算法分析:要从数组的高位到低位进行遍历. public class PlusOne { public in ...

  6. OnTouch关于performClick的Warning

    OnTouch关于performClick的Warning 当你对一个控件(例如FloatingActionButton)使用setOnTouchListener() 或者是对你的自定义控件重写onT ...

  7. python学习笔记(conf配置文件)

    在优化自己的框架中发现一个问题 有很多参数在很多类中都要使用.是否有什么功能可以帮助优化这些功能 这里我就想到 conf配置文件.整理了下资料 总结下内容如下 #!/usr/bin/env pytho ...

  8. GO学习笔记:函数Panic和Recover

    Go没有像Java那样的异常机制,它不能抛出异常,而是使用了panic和recover机制.一定要记住,你应当把它作为最后的手段来使用,也就是说,你的代码中应当没有,或者很少有panic的东西.这是个 ...

  9. appium自动化测试(一)

    一. appium的引入 二. adb adb(Android Debug Brige)是用来连接安卓手机和PC端的调试桥梁,通过adb服务,在PC端命令行界面对手机或者模拟器进行全面的操作 安装: ...

  10. poj3468线段树标记永久化

    #include<map> #include<set> #include<list> #include<cmath> #include<queue ...