运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 空值处理运算符
代码演示
- ftl模板(src下的ftl包中)
operator.ftl
<#-- 运算符 -->
<#assign num2=10.3>
num2:${num2+20}
<#assign name="abc">
${name+"def"}
<#assign newname=name+"gh">
${newname}
<#assign newnum=10+"a">
${newnum}
<#assign seq1=[1,2,3]+[4,5]>
#{seq1[4]}
<#assign num2=num2-2>
-:${num2}
<#assign num2=num2*2>
*:${num2}
<#--?int转换成int-->
<#assign num2=num2/2>
/:${num2?int}
<#--lt:< (小于号)gt:>(大于号)-->
<#assign b=1 lt 2>
1<2:${b?c}
<#assign b= 1 gt 2 >
1>2:${b?c}
<#-- b=1==2也可以 -->
<#assign b=1=2>
1=2:${b?c}
<#-- b= 1>0 && 1<3 -->
<#assign b=1 gt 0 && 1 lt 3>
1>0 && 1<3: ${b?c}
<#-- b= 1>1 || 1<3 -->
<#assign b=1 gt 1 && 1 lt 3>
1>1 || 1<3: ${b?c}
<#-- b= !(1>1) -->
<#assign b=!(1 gt 1)>
!(1>1): ${b?c}
<#-- 哈希表 -->
<#assign a={"name":"Tome"}>
a.name: ${a.name}
<#-- !空值处理运算符,如果a.age不存在,表示age为空,!20表示给age赋值20默认值 -->
a.age:${a.age!20}
- 测试代码
Operator.java
package lxd.freemarker.base;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import lxd.freemarker.utils.FreeMarkerUtil;
/**
* ftl之运算符
* @author lxd
* @date 2016年11月22日
*/
public class Operator {
public static void main(String[] args) {
Template template = FreeMarkerUtil.getTemplate("operator.ftl");
Writer writer = new OutputStreamWriter(System.out);
try {
template.process(null, writer);
System.out.println("\n operator ftl success!");
writer.flush();
writer.close();
} catch (TemplateException | IOException e) {
System.out.println("\n operator ftl fail!");
e.printStackTrace();
}
}
}
- 输出结果
getTemplate success!
num2:30.3
abcdef
abcgh
10a
5
-:8.3
*:16.6
/:8
1<2:true
1>2:false
1=2:false
1>0 && 1<3: true
1>1 || 1<3: false
!(1>1): true
a.name: Tome
a.age:20
operator ftl success!