如何在Facelets中使用c:中的OR条件

时间:2013-08-03 02:18:28

标签: jsf jstl facelets

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

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

1 个答案:

答案 0 :(得分:7)

按照与普通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)}">

另见: