freemarker插值
http://blog.csdn.net/chang_li/article/details/51913105
在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
一、FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}
- <pre name="code" class="html">${book.name?if_exists } //用于判断如果存在,就输出这个值
- ${book.name!"xxx"}//默认值xxx
- ${book.date?string('yyyy-MM-dd')} //日期格式
- ${book?string.number} 20 //三种不同的数字格式
- ${book?string.currency} <#-- $20.00 -->
- ${book?string.percent} <#-- 20% -->
- ${.now?datetime}//当前时间戳
二、FreeMarker提供两个运算符来避免空值:1. !: 指定缺失变量的默认值;2. ??:判断变量是否存在。!运算符有两种用法:variable!或variable!defaultValue。第一种用法不给变量指定默认值,表明默认值是空字符串、长度为0的集合、或长度为0的Map对象。例子:
- <pre name="code" class="html"><#-- ${sss} 没有定义这个变量,会报异常! -->
- ${sss!} <#--没有定义这个变量,默认值是空字符串! -->
- ${sss!"abc"} <#--没有定义这个变量,默认值是字符串abc! -->
三、??运算符返回布尔值,如:variable??,如果变量存在,返回true,否则返回false。
将它和 if 指令合并,那么如果 user 变量不存在的话将会忽略整个问候代码段:
- <#if user??><h1>Welcome ${user}!</h1></#if>
四、Freemarker中对于javabean的处理跟EL表达式一致,类型可自动转化!非常方便!
有一点需要注意: ${..}只能用于文本部分作为字符串输出,不能用于判断真假值
也就是不能这么写:<#if ${isBig}>Wow!</#if> ,应为<#if isBig>Wow!</#if>
五、对list进行遍历以及if else判断
- 1)<table width="100%">
- <#list investList as item>
- <tr>
- <td align="left" style="width:50%!important;">
- ${item.userName}<br>${item.addTime?string("yyyy-MM-ddHH:mm:ss")}
- </td>
- <td align="right" style="width:50% !important;">${item.money?string('0.00')}元<br/>
- <#if item.tenderType == 0>网站投标
- <#elseif item.tenderType == 1>自动投标
- <#elseif item.tenderType == 2>手机投标
- </#if>
- </td>
- </tr>
- </#list>
- </table>
2))
- <select name="awardTypeId" class="type">
- <option value="0" selected="selected">全部</option>
- <#if typeList??>
- <#list typeList as type>
- <option value="${type.id!}" >${type.name!}</option>
- </#list>
- </select>
3)assign指令用于为该模板页面创建或替换一个顶层变量,
- <#assign x="Hello ${user}!">
4)
- <#if data.list?size > 0>
freemarker插值的更多相关文章
- Freemarker中遍历List以及内置函数使用
在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户. 那么在Freemarker中如何遍历List,并对List中数据进行适当的排序呢?一. Free ...
- java 根据word xml模板生成word
这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说 1,编辑word并保存为xml 2,把xml后缀改为ftl文件 3,前端代码 // alert(jso ...
- freemarker 取值(插值)(转)
Java数据模型 1)基本数据类型取值 八种基本的java类型:byte.short.int.long:float,double:char:boolean 对应的封装类型:Byte.Short.Int ...
- FreeMarker的基础语法
FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...
- FreeMarker模板开发指南知识点梳理
freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生 ...
- Freemarker常用技巧
1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. <= lte. > gt. >= gte < ...
- FreeMarker标签与使用
模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选 ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- [转]一篇很全面的freemarker教程
copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主 ...
随机推荐
- .NET Remoting三种信道Http,Tcp,IPC和Web Service的访问速度比较(转)
Remoting和Web Service是.net中的重要技术,都可用来实现分布式系统开发,如果是不同的平台就只能选择Web Service,但如果是同一平台,就都可以选择了.到底选择那种,当然还有访 ...
- iOS自定义从底部弹上来的View
概述 自定义蒙层弹起View,点击一下遮罩或界面上关闭按钮,页面会自动下去(从上向下) 详细 代码下载:http://www.demodashi.com/demo/10724.html 在一些少数据没 ...
- iOS-高仿微信摇一摇动画效果加震动音效
概述 摇一摇动画效果 (加震动音效) 详细 代码下载:http://www.demodashi.com/demo/10707.html 众所周知, 微信中的摇一摇功能: 搜索人/歌曲/电视,同样在一些 ...
- result-charts
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Android SharedPreferences保存和读取对象
SharedPreferences保存和读取对象 1.首先要序列化对象(以下是序列化实体类的样例,不方便贴出实体类全部的代码) public class LoginResult extends Bas ...
- TP3.2:实现Ajax无刷新上传图片
1.基于TP3.2+ajaxfileupload进行无刷新上传图片,本次只上传一张,多张以后搞出来再发 2.效果: 3.html代码: <html> <head> < ...
- python中如何对list之间求交集,并集和差集
最近遇到一个从list a里面去除list b的元素的问题,由于a很大,b也不小.所以遇到点困难,现在mark一下. 先说最简单的方法: a = [1, 2, 3, 4, 5, 6, 7, 8, 9, ...
- Windows2008R2允许多用户远程登录设置
Windows 2008 R2终端服务器安装配置 后面的一律下一步就可以安装完成了,下面是如何设置多用户远程登陆. Windows2008允许多用户远程登录设置 服务器重启,以上配置全部生效.
- Hadoop Streaming
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/streaming.html Hadoop Streaming Streaming工作原理 将文件打包到提交的 ...
- 【js】with 语句
with 语句 为语句设定默认对象. with (object) statements 参数 object 新的默认对象. statements 一个或多个语句,object 是该语句的默认对象. ...