Freemarker运算符

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”} //语法错误

${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

<#assign name=“Java”>
<#if name==“Java”>
Name is Java
<#else>
Name is not Java

<#assign flag=3<1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1

<#assign flag=3 lt 1> //判断3小于1
<#if flag>
3 is less than 1
<#else>
3 is bigger than 1

<#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 testVar??>
testVar is not Null
<#else>
testVar is Null

变量赋默认值
<#if testVar2??>
${testVar2}
<#else>
${testVar2!“DefaultVal”}

代码

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 m = new HashMap();
		
			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"} //语法错误


${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


<#assign name="Java">
<#if name=="Java">
	Name is Java
<#else>
	Name is not Java


<#assign flag=3<1> //判断3小于1
<#if flag>
	3 is less than 1
<#else>
	3 is bigger than 1

<#assign flag=3 lt 1> //判断3小于1
<#if flag>
	3 is less than 1
<#else>
	3 is bigger than 1

<#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 testVar??>
	testVar is not Null
<#else>
	testVar is Null

变量赋默认值
<#if testVar2??>
	${testVar2}
<#else>
	${testVar2!"DefaultVal"}



三目运算

类似Java中的三目运算
${false?string(“对”,“错”)}
Freemarker运算符_第1张图片

你可能感兴趣的:(Freemarker)