Jsf 如何在EL布尔表达式中使用II(或)
我希望有条件地呈现如下组件:Jsf 如何在EL布尔表达式中使用II(或),jsf,el,or-operator,Jsf,El,Or Operator,我希望有条件地呈现如下组件: rendered="#{att.attName != 'att1' or 'att2'}" 然而,这不起作用。我尝试了或和| |,但它只计算或条件的左侧,因此在上面的情况下,它只与“att1”比较,而不与“att2” 如果我更改了顺序,那么它将与“att2”相比较,而不是与“att1”相比较,这应该是您需要的 rendered="#{(att.attName != 'att1') and (att.attName != 'att2')}" (不需要括号,但为了可
rendered="#{att.attName != 'att1' or 'att2'}"
然而,这不起作用。我尝试了或和| |
,但它只计算或条件的左侧,因此在上面的情况下,它只与“att1”
比较,而不与“att2”
如果我更改了顺序,那么它将与“att2”
相比较,而不是与“att1”
相比较,这应该是您需要的
rendered="#{(att.attName != 'att1') and (att.attName != 'att2')}"
(不需要括号,但为了可读性我添加了括号)在普通Java代码中如何实现<代码>如果(att.getAttName()!=“att1”| |“att2”)
这是有效的语法吗?(忽略参考比较)感谢您的解释,因为您不希望它与att1
相等,也不希望与att2
相等。否则,它将始终是true
。合乎逻辑,不是吗?如果您确实需要OR,那么使用{!(att.attName=='att1'或att.attName=='att2')}
这样在我的代码中,如果第一个条件为真,它总是与这两个值进行比较?rendered=“#{att.attName!='att1'或'att2'}”不,这只是无效的语法。您看到的是作为一个整体的“att1”或“att2”。那是错误的。它实际上是att.attName!='分别比较att1'
和att2'
。和普通Java一样(您熟悉吗?)。