Java模版引擎之Freemarker
2019-08-16 09:56:58来源:博客园 阅读 ()
Java模版引擎之Freemarker
freemarker是一款模版引擎,是一种基于模版生成静态文件的通用工具,它是为Java程序员提供的一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌入他们开发产品的应用程序。
1. 插值
1.1 常用${var}语法进行取值
1.2 对null、不存在对象取值${var!’设置默认值’}
1.3 取包装对象的值,通过“点”语法:${user.name}
1.4 取值的时候进行计算、赋值:
<#assign str=’我是自定义值’ />
<span>${‘输出:’ + str}</span>
1.5 Date类型格式${date?String(yyyy-MM-dd‘’)}
1.6 转义HTML内容:${var?html}
2. 逻辑指定:if、switch
2.1 if
<#if var == ‘str1’> var = ‘str1’ <#else> var != ‘str1’ </#if>
<#if var == ‘str1’> var = ‘str1’ <#elseif var == ’str2’> var != ‘str2’ <#else> var != ‘str1’ </#if>
用<#if var??><#if> 或 <#if var?exite><#if> 判断变量是否存在
2.2 switch
<#switch var> <#case 1> case1 <#break> <default> other </#switch>
3. 集合遍历
3.1 list遍历
<#list myList as item>
下标:${item_index}
值:${item}
</#list>
3.2 map遍历
<#list myMap?keys as key>
${key} : ${map[key]}
</#list>
4. string基本操作指令
${str?substring(5,8)}:截取,取头不取尾
${str?length}:获取长度
${str?upper_case}:全部转为大写
${str?lower_case}:全部转为小写
${str?index_of(‘xx’)}:查找子串第一次出现的位置
${str?last_index_of(‘xx’)}:查找子串最后一次出现的位置
${str?replace(‘a’,’xx’)}:替换
5. 自定义函数(继承TemplateMethodModelEx接口)
5.1 创建自定义函数类
public class TemplateMethd implements TemplateMethodModelEx { @Override public Object exec(List list) throws TemplateModelException { // 获取参数 SimpleSequence simpleSequence = (SimpleSequence) list.get(0); List<BigDecimal> list1 = simpleSequence.toList(); Collections.sort(list1, (a, b) -> { return a.intValue() - b.intValue(); }); return list1; } }
5.2 将自定义函数对象传到模版中
modelAndView.setViewName("index"); modelAndView.addObject("sort_int_list", new TemplateMethd()); return modelAndView;
5.3 在模版中使用
<#assign myList=[1,4,5,2,3,7,5,9,0] /> <#list sort_int_list(myList) as item> ${item}, </#list>
6. List的指令
6.1 排序
<#list myList?sort as item>
${item_index} : ${item}
</#list>
6.2 反转
<#list myList?reverse as item>
${item_index} : ${item}
</#list>
6.3 长度
${myList.size}
7. Freemarker内建函数
7.1 处理字符串内建函数
substring:字符串截取
cap_first:首字母大写
starts_with:是否以子串开始
ends_with:是否以子串结尾
index_of:查找子串第一次出现下标
last_index_of:查找子串最后一次出现下标
split:分隔字符串
trim:去首位空格
contains:是否包含子串
date/datetime/time:字符串转换为日期格式
7.2 处理数字的内建函数
string:转为字符串
x?string(“0.##”):转为小数点
round:四舍五入
floor:四舍五入
ceiling:四舍五入进一
7.3 处理List的内建函数
first/list:取第一个/最后一个值
seq_contains:序列是否包含该值
seq_index_of:该值在list中第一次出现的下标
size/reverse/sort/sort_by:大小/反转/排序/list中为一个对象,可以根据某个属性进行排序
chunk(num):把list进行分块处理,每num为一块
7.4 其他内建函数
is函数:is_string/is_number/is_method(判断是否为string/number/method)
has_content函数:判断一个对象是否是null、不存在
8. Function指令
<#function doAdd param1 param2> <@return param1 + param2 /> </@function> 调用: ${doAdd(5, 6)}
原文链接:https://www.cnblogs.com/www-123456/p/11147706.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash