4

如何<c:if>在 Facelets 中使用 OR 条件?如果它是 3 或 2 或 5,我需要检查特权。

 <c:if test="#{Privlage=='3'or '2' or '5'}" > 
4

1 回答 1

9

只需遵循与普通 Java 相同的逻辑即可:

if (privilege.equals("3") || privilege.equals("2") || privilege.equals("5"))

因此,所以:

<c:if test="#{privilege == '3' || privilege == '2' || privilege == '5'}">

您可以在 EL中使用eq代替==or代替。||

<c:if test="#{privilege eq '3' or privilege eq '2' or privilege eq '5'}">

如果您使用的是 EL 3.0,那么您可以通过新#{[...]}的列表语法和集合语法来利用新功能来声明内联集合#{{...}}。因此,下面的 Java 等价物:

List<String> privileges = Arrays.asList("3", "2", "5");
if (privileges.contains(privilege))

在 EL 3.0 中可以这样做:

<c:if test="#{['3','2','5'].contains(privilege)}">

也可以看看:

于 2013-08-03T02:21:25.697 回答