FreeMaker常用方法

1.表达式转换类

${expression}计算expression并输出
#{ expression }数字计算#{ expression ;format}安格式输出数字format为M和m

M表示小数点后最多的位数,m表示小数点后最少的位数如#{121.2322;m2M2}输出121.23

2.数字循环

1..5

表示从1到5,原型number..number

3.对浮点取整数

${123.23?int}

输出123

4.给变量默认值

${var?default(“hello world<br>”)?html}如果var is null那么将会被hello world<br>替代

5.判断对象是不是null

<#if mouse?exists>
Mouse found
<#else>

也可以直接${mouse?if_exists})输出布尔形

6.常用格式化日期

openingTime必须是Date型,详细查看freemarker文档 Reference->build-in referece->build-in for date

${openingTime?date}
${openingTime?date_time}
${openingTime?time}

7.添加全局共享变量数据模型

在代码里的实现

cfg = Configuration.getDefaultConfiguration();
cfg.setSharedVariable("global", "you good");

页面实现可以通过global指令,具体查看指令里的global部分
直接调用java对象的方法

${object.methed(args)}

8.字符串处理(内置方法)

html安全输出

“abc<table>sdfsf”?html

返回安全的html输出,替换掉html代码
xml安全输出

var?xml

9.substring的用法

<#assign user=”hello jeen”>
${user[0]}${user[4]}
${user[1..4]}

输出 :

ho
ello

10.类似String.split的用法

“abc;def;ghi”?split(“;”)返回sequence
将字符串按空格转化成sequence

var?word_list  效果同 var?split(“ ”)

11.取sequence的长度

var?word_list?size

12.取得字符串长度

var?length

13.大小写输出字符

var?upper_case/大写输出字符
var?lower_case/小写输出字符

14.首字符大小写

var?cap_first/首字符大写
var?uncap_first/首字符小写

15.每个单词的首字符大写

var?capitalize

16.去掉字符串前后空格

var?trim

17.类似String.indexof:

“babcdabcd”?index_of(“abc”) 返回1
“babcdabcd”?index_of(“abc”,2) 返回5

18.类似String.lastIndexOf

last_index_of和String.lastIndexOf类似,同上

19.下面两个可能在代码生成的时候使用(在引号前加”\”)

j_string: 在字符串引号前加”\”
<#assign beanName = 'The "foo" bean.'>
String BEAN_NAME = "${beanName?j_string}";

打印输出:

String BEAN_NAME = "The \"foo\" bean.";
js_string:
<#assign user = "Big Joe's \"right hand\".">
<script>
alert("Welcome ${user}!");
</script>

打印输出

alert("Welcome Big Joe\'s \"right hand\"!");

20.替换字符串 replace

${s?replace(‘ba’, ‘XY’ )}  or  ${s?replace(‘ba’, ‘XY’ , ‘规则参数’)}

将s里的所有的ba替换成xy 规则参数包含: i r m s c f 具体含义如下:

· i: 大小写不区分.
· f: 只替换第一个出现被替换字符串的字符串
· r:  XY是正则表达式
· m: 正则表达式的多行模式。在多行模式下,或仅仅是之前或之后的表达式,分别为行结束符或字符串的结束符。默认情况下,这些表达式只匹配整个字符串的开头和结尾。
· s:使用正则表达式dotall模式(同Perl单线模式)。在dotall模式,表达。匹配任何字符,包括行结束符。默认情况下,这个表达式不匹配行终止符。
· c:允许空格和正则表达式的评论。

21.在模板里对sequences和hashes初始化

sequences

1) [“you”,”me”,”he”]
2) 1..100
3)[ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”},
{“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”},
]

hashes

{“you”:”a”,”me”:”b”,”he”:”c”}

22.注释标志

<#--
这里是注释
-->

旧版本的freemarker采用的是<#comment> 注释 </#comment>方法

23.sequences内置方法

方法 描述
sequence?first 返回sequence的第一个值;前提条件sequence不能是null
sequence?last 返回sequence最后一个值
sequence?reverse 反转sequence的值
sequence?size 返回sequence的大小
sequence?sort 对sequence按里面的对象toString()的结果进行排序
sequence?sort_by(value) sequence 按里面的对象的属性value进行排序

如: sequence里面放入的是10 个user对象,user对象里面包含name,age等属性
sequence?sort_by(name) 表示所有的user按user.name进行排序

24.hashes内置方法

方法 描述
hash?keys 返回hash里的所有keys, 返回结果类型sequence
hash?values
返回hash里的所有value, 返回结果类型sequence

-------------------------------------------------------------------------------------------------------------------------------------

转载需注明转载字样,标注原作者和原博文地址。

FreeMaker常用方法的更多相关文章

  1. 表现层技术以及Freemaker使用教程

    表现出计数以及Freemaker详解 在java领域,表现层技术主要有三种:jsp.freemarker.velocity.jsp是大家最熟悉的技术优点: 1.功能强大,可以写java代码 2.支持j ...

  2. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  3. Jquery元素选取、常用方法

    一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...

  4. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  5. C# Webbrowser 常用方法及多线程调用

    设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...

  6. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  7. 记录yii2-imagine几个常用方法

    记录yii2-imagine几个常用方法: //压缩 Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::g ...

  8. DOM常用方法总结

    DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...

  9. JSP内置对象及常用方法

    jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...

随机推荐

  1. 以中间件,路由,跨进程事件的姿势使用WebSocket

    通过参考koa中间件,socket.io远程事件调用,以一种新的姿势来使用WebSocket. 浏览器端 浏览器端使用WebSocket很简单 // Create WebSocket connecti ...

  2. CSS3 颜色属性

    关键字颜色 red 十六进制颜色 #FF0000 RGB颜色   rgb(255,0,0) 新增的颜色表示方法 RGBa: RGB代表光的三原色,Red.Green和Blue CSS3中可以增加一个值 ...

  3. [js样式效果]具有停顿效果上下滚动方式

    一般用于公告的滚动效果 <!DOCTYPE HTML> <html> <head> <meta charset="gb2312" /> ...

  4. Yii 时间戳格式化显示的问题

    这个控件是CJuiDatePicker控件的扩展,支持时分秒. 下载地址:http://www.yiiframework.com/extension/timepicker/ 这个控件用在view里的_ ...

  5. CentOS7系列--5.2CentOS7中配置和管理Docker

    CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...

  6. 微信小程序为什么不被看好?

    我自认为对新技术还是比较有热情的,可对于小程序这个“新技术”,我却完全是被动的.去年9月份的时候,微信小程序开始内测,瞬间引爆朋友圈.知乎等一众分享平台.当时我大概了解了一下,觉得从技术角度上来说没啥 ...

  7. xxxx签名算法逆向&&python脚本实现

    前言 有一段时间没看安卓了,找几个软件练练手. 这是一个考驾照用的 app. 官方网址: http://www.******baodian.com/ 本文就分析一下在 重置密码时对 数据包 进行签名来 ...

  8. maven 编译打包时,明明类文件没有问题,却提示错误:未结束的字符串字面值,maven-compiler-plugin:2.3.2

    maven错误提示如下: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (de ...

  9. hue简单介绍

    hue定义: HUE=Hadoop User Experience 个人理解:可视图的webui界面,方便大数据技术之间的CRUD操作. 官方定义:Hue是一个能够与Apache Hadoop交互的W ...

  10. CCSUOJ评测系统——第一次scrum冲刺

    1.第一次冲刺任务安排 对Github上的HUSTOJ开源项目进行Fork,搭建基本环境 2.用户需求 ①基本功能显示在首页 ②能够提交题目并判题,并对自己所提交的题目正确性进行反馈,能够查看自己提交 ...