Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何在EL布尔表达式中使用II(或)_Jsf_El_Or Operator - Fatal编程技术网

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一样(您熟悉吗?)。