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

Mus*_*New 4 jsf jstl facelets

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

 <c:if test="#{Privlage=='3'or '2' or '5'}" > 
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 7

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

if (privilege.equals("3") || privilege.equals("2") || privilege.equals("5"))
Run Code Online (Sandbox Code Playgroud)

因此,所以:

<c:if test="#{privilege == '3' || privilege == '2' || privilege == '5'}">
Run Code Online (Sandbox Code Playgroud)

您可以使用eq,而不是==和or,而不是||在EL.

<c:if test="#{privilege eq '3' or privilege eq '2' or privilege eq '5'}">
Run Code Online (Sandbox Code Playgroud)

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

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

可以在EL 3.0中完成:

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

也可以看看: