tag if - jmr-source/doc GitHub Wiki

if - 判断

<if>

判断语句块

说明

通过Ognl表达式,判断语句快是否执行,可以配合<elseif>和<else>标签使用。

属性

test(必须)
使用Ognl判断条件,判断结果是true,则运行if块内的代码,false则不运行

符号
==:等于
!=:不等于
&&:与
||:或
trim(可选)
是否保留输出值的前后空白字符

属性
false:保留输出值的前后空白字符(默认)
true:删除输出值的前后空格(包括换行符)

###例子位置:###

  • demo/tag/tag.jmr.xml 任务中的 common/if/if

判断规则

在test中,输入Ognl表达式,表达式返回的是true,则执行if块内的内容,如果返回的是false,则跳过或者进入下个判断语句快(如<elseif>或<else>)。

常用判断符号

==:等于
!=:不等于
&&:与
||:或
>:大于
>=:大于等于
<:小于
<=:小于等于
例子:判断成绩,如果大于等于60分并且小于等于100分,则输出恭喜,通过!

结果

小贴士:在<if>的test中,鼠标选中表达式的部分或全部,可以提示出选中表达式的值。

Ognl表达式判断

在<if>的test中,不仅可以判断变量,还可以判断变量的Ognl属性或者方法。

我们初始化一个List,它放进了3个Book对象,
Book对象包含int id, String name, Double price三个属性。

把模板中的Action设置成IfTagAction以便得到变量的提示。

遍历所有book,输出价格,当它的price大于等于50时,打9折,否则不打折。

结果

有句名言叫“知识让人谦逊(Knowledge makes humble)”,
然而下面的一句话则写成了“知识让人骄傲(Knowledge makes proud)”,我们有必要改过来。
此判断String中是否存在prond,如果存在,则把prond换成humble。
在test中,可以调用变量的Ognl方法返回值做判断。

结果

“==”和“equals(...)”?

在java中,我们知道,String比较是否相等时,需要用equals(...),而不是==。 但在Ognl表达式的判断中,我们也可以用==比较String是否相等。

设置一个字符串str,分别用==和equals(...)比较它们是否相当

我们可以看到,==和equals(...)一样可以作为比较String相等

trim使用方法

trim是判断是否保留输出值的前后空白字符,默认false,也就是说原样输出所有字符。

以下2个输出方式,一种默认trim="false",另一种trim="true"。

可以看出,第一种方式原样输出,包括前后的空格和换行符,另一种去除了空格和换行符。

⚠️ **GitHub.com Fallback** ⚠️