Freemarker模板中支持的运算符
一、算术运算符
二、比较运算符
三、逻辑运算符
四、空判断运算符
五、三目运算
算术运算符
算术运算符
<#assign i=10>
<#assign j=20>
<#assign s=“Java”>
${i+j} //整型+整型变量
${i+100} //整型+整型常量
${i+s} //整型+字符串变量
${i+“Sun”} //整型+字符串常量
${“Sun Java”+i} //字符串+整型变量
${i-j} //整型-整型变量
<#noparse>
${i-“Java”} //语法错误
</#noparse>
${i/2} //整型除法 除尽时结果为整数
${i/3} //整型除法 不可整除时保留三位小数,并四舍五入
${i/9} //整型除法 不可整除时保留三位小数,并四舍五入
${1/3} //整型除法 不可整除时保留三位小数,并四舍五入
${2/3} //整型除法 不可整除时保留三位小数,并四舍五入
<#assign f = i/3> //运算结果赋值
${f}
模运算
${12%3} //12模3
${12%7} //12模7
比较运算符
比较运算符
<#assign age=20>
<#if age gt 30>
Age 大于 30
<#else>
Age 小于 30
</#if>
<#assign name=“Java”>
<#if name==“Java”>
Name is Java
<#else>
Name is not Java
</#if>
<#assign flag=3<1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1
</#if>
<#assign flag=3 lt 1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1
</#if>
<#assign flag=3 lte 1> //判断3小于等于1
<#assign flag=3 gte 1> //判断3大于等于1
${flag?c} ${flag?string} //布尔类型需要转化为字符类型输出
逻辑运算符
逻辑运算符
<#assign flag= 3 gt 1 && 2 gt 1>
${flag?c}
<#assign flag= 3 gt 1 || 2 lte 1>
${flag?c}
<#if 3 gte 1 && 2 lte 1>
3>=1 && 2 <= 1
<#else>
判断为假
</#if>
空值判断
<#if testVar??>
testVar is not Null
<#else>
testVar is Null
</#if>
变量赋默认值
<#if testVar2??>
${testVar2}
<#else>
${testVar2!“DefaultVal”}
</#if>
代码
package com.test.blog.freemarker;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class Unit02Tester {
public static void main(String[] args) {
try
{
//1.定义Freemarker配置对象
Configuration config = new Configuration(Configuration.VERSION_2_3_23);
//2.指明Freemarker模板加载目录 Class
config.setClassForTemplateLoading(Unit02Tester.class, "./");
//3.通过模板文件名取得模板对象
Template tmplt = config.getTemplate("unit03.ftl");
//4.定义数据模型
Map<String,Object> m = new HashMap<String,Object>();
OutputStreamWriter osw = new OutputStreamWriter(System.out);
BufferedWriter bw = new BufferedWriter(osw);
//5.合并模板+数据模型
tmplt.process(m, bw);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
模板文件
算术运算符
<#assign i=10>
<#assign j=20>
<#assign s="Java">
${i+j} //整型+整型变量
${i+100} //整型+整型常量
${i+s} //整型+字符串变量
${i+"Sun"} //整型+字符串常量
${"Sun Java"+i} //字符串+整型变量
${i-j} //整型-整型变量
<#noparse>
${i-"Java"} //语法错误
</#noparse>
${i/2} //整型除法 除尽时结果为整数
${i/3} //整型除法 不可整除时保留三位小数,并四舍五入
${i/9} //整型除法 不可整除时保留三位小数,并四舍五入
${1/3} //整型除法 不可整除时保留三位小数,并四舍五入
${2/3} //整型除法 不可整除时保留三位小数,并四舍五入
<#assign f = i/3> //运算结果赋值
${f}
模运算
${12%3} //12模3
${12%7} //12模7
比较运算符
<#assign age=20>
<#if age gt 30>
Age 大于 30
<#else>
Age 小于 30
</#if>
<#assign name="Java">
<#if name=="Java">
Name is Java
<#else>
Name is not Java
</#if>
<#assign flag=3<1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1
</#if>
<#assign flag=3 lt 1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1
</#if>
<#assign flag=3 lte 1> //判断3小于等于1
<#assign flag=3 gte 1> //判断3大于等于1
${flag?c} ${flag?string} //布尔类型需要转化为字符类型输出
逻辑运算符
<#assign flag= 3 gt 1 && 2 gt 1>
${flag?c}
<#assign flag= 3 gt 1 || 2 lte 1>
${flag?c}
<#if 3 gte 1 && 2 lte 1>
3>=1 && 2 <= 1
<#else>
判断为假
</#if>
空值判断
<#if testVar??>
testVar is not Null
<#else>
testVar is Null
</#if>
变量赋默认值
<#if testVar2??>
${testVar2}
<#else>
${testVar2!"DefaultVal"}
</#if>
三目运算
类似Java中的三目运算
${false?string(“对”,“错”)}