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”} //语法错误
</#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(“对”,“错”)}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值