Freemarker If指令

if 指令即判断指令,是常用的FTL指令,freemarker在解析时遇到if会进行判断,条件为真则输出if中间的内容,否则跳过内容不再输出。

模板:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf‐8">
    <title>Hello World!</title>
</head>
<body>
Hello ${name}!
<table>
    <tr>
        <td>序号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>钱包</td>
    </tr>
    <#list stuMap?keys as k>
        <tr>
            <#--_index:得到循环的下标,使用方法是在stu后边加"_index",它的值是从0开始-->
            <td>${k_index + 1}</td>
            <td <#if stuMap[k].name =='小明'>style="background: cornflowerblue"</#if> >${stuMap[k].name}</td>
            <td>${stuMap[k].age}</td>
            <td >${stuMap[k].money}</td>
        </tr>
    </#list>
</table>
</body>
</html>

展示效果:

在这里插入图片描述
可以使用 if,elseif ,else指令来条件判断是否跳过模板的一部分,这和程序语言中if是相似的.
语法:

<#if condition>...

<#elseif condition2>...

<#elseif condition3>...

<#else>...

</#if>

说明:

condition,condition2等表达式将被计算成布尔值。
condition-s必须计算成布尔值,否则错误将会终止模板处理。
elseif 和 else必须出现在if的内部,也就是说,在if的开始标签和结束标签之间。
if中可以包含任意数量的elseif(包含0个),而且结束时else时可选的。

示例:

//java中准备数据模型
root.put("random", new Random().nextInt(100));
root.put("user","张三");
------------------------------------------------
<#--if语句测试:-->
${user}<#if user=="老高">我们的老师</#if>
------------------------------------------------
<#--if else 语句测试:-->
<#if num0 gt 18>  <#--不是使用>,大部分时候,freemarker会把>解释成标签结束! -->
    及格!
<#else>
    不及格!
</#if>
---------------------------------------------------
<#-- if else if else语句测试:-->
<#if random gte 90>
    优秀!
<#elseif random gte 80>
    良好!
<#else>
    一般!    
</#if>
----------------------------------------------------

转载自 https://www.cnblogs.com/kjitboy/p/5094142.html

1、算数运算符 FreeMarker表达式中完全支持算术运算,FreeMarker支持的算术运算符包括:+, - , * , / , %
2、逻辑运算符 逻辑运算符有如下几个:
逻辑与:&&
逻辑或:||
逻辑非:!
逻辑运算符只能作用于布尔值,否则将产生错误
3、比较运算符
表达式中支持的比较运算符有如下几个:
1 =或者==:判断两个值是否相等.
2 !=:判断两个值是否不等.
3 >或者gt:判断左边值是否大于右边值
4 >=或者gte:判断左边值是否大于等于右边值
5 <或者lt:判断左边值是否小于右边值
6 <=或者lte:判断左边值是否小于等于右边值
注意: =和!=可以用于字符串,数值和日期来比较是否相等,但=和!=两边必须是相同类型的值,否则会产生错误,而且FreeMarker是精确比较,“x”,"x ","X"是不等的.其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值