我有这样的if语句:
<c:if test="${id == '1' || id == '2' || id == '3' || id == '4'}">
我想知道是否有一种方法可以通过检查数组/列表/集中是否包含id
来简化这一点,类似于
<c:if test="${id isContainedIn {'1','2','3','4'}}">
显然这不正确,但它证明了我在寻找什么。有什么类似的吗?谢谢!
答案 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]
我的列表包含两个
我的列表包含,
我希望它能对某人有所帮助。