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

问题描述 投票:1回答:2

我有一个if语句,如下所示:

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

而且我想知道是否有一种方法可以通过检查id是否包含在数组/列表/集合中来简化此过程,就像这样

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

显然,这是不正确的,但是它表明了我在寻找什么。有没有类似的东西?谢谢!

java jsp
2个回答
1
投票

如果您可以创建一个包含列表的字符串,则可以使用以下代码。

<%@ 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>

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]

我的列表包含两个

我的列表中包含,

我希望它可以帮助某人。

© www.soinside.com 2019 - 2024. All rights reserved.