检查JSP中的数组是否包含值

时间:2015-07-30 14:44:53

标签: java jsp

我有这样的if语句:

<c:if test="${id == '1' || id == '2' || id == '3' || id == '4'}">

我想知道是否有一种方法可以通过检查数组/列表/集中是否包含id来简化这一点,类似于

<c:if test="${id isContainedIn {'1','2','3','4'}}">

显然这不正确,但它证明了我在寻找什么。有什么类似的吗?谢谢!

2 个答案:

答案 0 :(得分:1)

如果您可以创建包含列表的String,那么您可以使用类似下面的代码。

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
<%
   pageContext.setAttribute("listString", "1234");
%>
<c:set var="id" value="3"/>
<c:if test='${fn:contains(listString, id)}'>
    Yes id is contained
</c:if>

答案 1 :(得分:0)

您可以执行以下操作:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%
   ArrayList list = new ArrayList();
   list.add("one");
   list.add("two");
   list.add("three");
%>
<c:set var="list" value="<%=list%>" />
<html>
<body>
        My list is ${list}<br/>
<c:if test='${fn:contains(list, "two")}'>
        My list contains two <br/>
</c:if>
<c:if test='${fn:contains(list, ",")}'>
        My list contains , 
</c:if>
</body>
</html>

上面代码的输出是

我的名单是[1、2、3]

我的列表包含两个

我的列表包含,

我希望它能对某人有所帮助。