在我的Java EE 7 / JSF / EL 3.0项目中,我需要根据条件定义标记的样式类:
x < a
,那么该课程为LT-A
x > b
,则为BT-B
BETWEEN-A-B
我能找到的唯一解决方案是使用嵌套的条件运算符:
styleClass="#{x<a ? 'LT-A' : (x>b ? 'BT-B' : 'BETWEEN-A-B')}"
但是,我的问题是(x>b ? 'BT-B' : 'BETWEEN-A-B')
部分被解释为String
(因此按原样呈现而不是实际评估)。
语法有问题吗?
答案 0 :(得分:4)
<
和>
被误解了。如果您使用lt
和gt
,一切都应该可以正常使用。
以下是EL逻辑运算符的完整列表:
and
- 逻辑运营商替代(&amp;&amp;)
false
- 布尔文字
le
- 关系运算符小于或等于(&lt; =)的替代
not
- 逻辑运算符反向替代(!)
div
- 算术运算符除(/)
ge
- 关系运算符大于或等于(&gt; =)的替代
lt
- 关系运算符少于(&lt;)的替代
null
- 空文字
empty
- 空运算符是一个前缀操作,可用于确定值是空还是空。
gt
- 关系运算符大于(&gt;)的替代
mod
- 算术运算符模数替代(%)
or
- 逻辑运算符替代(||)
eq
- 逻辑运算符替代(==)
instanceof
- 用于在对象之间进行类比较的Java关键字
ne
- 关系运算符不等于(!=)
true
- 布尔文字