tag if - jmr-source/doc GitHub Wiki
<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中,鼠标选中表达式的部分或全部,可以提示出选中表达式的值。
在<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方法返回值做判断。
结果
在java中,我们知道,String比较是否相等时,需要用equals(...),而不是==。 但在Ognl表达式的判断中,我们也可以用==比较String是否相等。
设置一个字符串str,分别用==和equals(...)比较它们是否相当
我们可以看到,==和equals(...)一样可以作为比较String相等
trim是判断是否保留输出值的前后空白字符,默认false,也就是说原样输出所有字符。
以下2个输出方式,一种默认trim="false",另一种trim="true"。
可以看出,第一种方式原样输出,包括前后的空格和换行符,另一种去除了空格和换行符。