java freemarker if_Java模板引擎Freemarker

1、取值(插值)指令

常用${var} 语法进行取值;

对null、不存在对象取值${var!}

取包装对象的值,通过“点”语法:${User.name}

取值的时候可以进行计算、赋值

Date类型格式${date?String('yyyy-MM-dd')}

如何转义HTML内容:${var?html}

不能转义Java.Util的Date;可以转义Java.sql的Date;

日期:${dateVar?string('yyyy-MM-dd')}

如果对象为null;

${var!} 、 ${var!'我是默认值'}

不存在的变量:

missing:${sssVar!'我是默认值'}

变量的定义、赋值、运算:

//赋值&运算

a = ${a}

a+100=${a+100}

自定义对象User变量的取值:

${(userObj.name)!}:对整体加一个()括号,则先判断前面的userObj是否存在,然后判断后面的.name是否存在;

${(userObj.name)!‘我是默认值’}:Freemarker对单引号和双引号没有区别。

输出富文本:

user.setBrief("此处编辑富文本!");

${(userObj.brief)}

若想将其中的html语句也输出,则:

${(userObj.brief)!?html}

集合List的遍历:

ModelAndView mv = new ModelAndView("index");

List list = new ArrayList();

list.add("a");

list.add("a");

mv.addObject("myList",list);

前台取值:

${item!}

#list>

集合Map的遍历:

ModelAndView mv = new ModelAndView("index");

Map map = new HashMap();

map.put("a",1);

map.put("b",2);

mv.addObject("map",map);

前台取值:

${key}:${map[key]}

#list>

2、逻辑指令:if、switch

//定义一个变量

//if表达式

var = 99

#if>

var = 99

var != 99

#if>

//如果大于99

var 大于 99

var = 99

var 小于 99

#if>

//加两个??,判断变量是否存在,如果存在,执行里面的语句,否则不执行。

//??也等价于,

${item}

#list>

#if>

if多条件判断:||、&&、!

python or java

#if>

//?length判断字符串长度

python 长度为6

#if>

Switch语法:包含switch,case,break,default;

10

100

other

#switch>

3、字符串、集合操作

//定义两个变量a,b

//连接

${a+b}

//截取

${(a+b)?substring(5,8)}

//长度

${(a+b)?length}

//大写

${(a+b)?upper_case}

//小写

${(a+b)?lower_case}

//index_of

${(a+b)?index_of('w')}

//last_index_of:单词最后一次出现的地方

${(a+b)?last_index_of('0')}

//replace

${(a+b)?replace('o','xx')}

4、自定义函数

自定义函数(整数排序 sort_int)

//未排序

${item},

#list>

//排序

${item},

#list>

//sort_int从哪里来呢?

//controller;

ModelAndView mv = new ModelAndView("index");

mv.addObject("sort_int",new SortMethod());

return mv;

851dc2a1470b017e01c06d0260645b62.png

5、list排序内建函数、常用指令

//排序

${item_index}:${item}

#list>

//倒叙

//长度

${myList?size}

//下表

${myList[3]}

6、自定义指令

内置指令用#;

自定义指令用@;

7、freemarker常用内建函数

7.1 处理字符串内建函数

substring、cap_first(首字母变大写的函数)、ends_with(以…结尾)、contains(字符串是否包含目标字符串);

date、datetime、time。如何把字符串转为这三个格式的类型。

starts_with(字符串以…开始)、index_of(字符串所在的位置)、last_index_of(字符串最后所在的位置)、spilt(分割,返回的是数组)、trim(把空和空格去掉)。

7.2 处理数字的内建函数

string、x?string(“0.##”);小数点后几位

round(四舍五入)、floor(把小数点后去掉)、ceiling;

7.3 处理list的内建函数

first(第一个值)、last(最后一个值)、seq_contains(序列是否包含)、seq_index_of(序列位置);

size、reverse、sort、sort_by(如果List是个对象,则可跟进某个属性进行排序)

chunk(将List分块处理)

7.4 其他内建函数

is函数:is_string、is_number、is_method;判断变量类型;

()、has_content函数。

eval求值。

5d4f7ecb8f1c42c243a1f8daf84c4729.png

92308caf009bd67094656dbd61306951.png

63484c2ec937ecad73b5ba303df4d45f.png

02ae85057166514d97809df61e24eeca.png

8、macro、function指令

8.1 宏macro、nested、return指令

d7da6de9cb4c7bf7a075881680aa789f.png

a8944809c802b205ea86a9f34d5512d7.png

5231116e8099dbe8324fdfa7f07dc88b.png

a6283965451f49498b60bf84f38a44d1.png

8.2 函数function、return指令

7b050e715c0c6401459947098b1d9e93.png

5c8924b52836777e915b21f1299a0c0a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值