所有jstl标记都将在任何scriptlet标记之前读取。因此,您必须使用jstl <c:set
标签创建一个变量。看这个例子:
<% for (int i = 0; i < 3; i++) {%>
<c:set value="${i}" var="tempuser1"></c:set>
<c:set value="initialized with some value" var="tempuser2"></c:set>
<c:out value="${tempuser1}"></c:out>
<c:out value="${tempuser2}"></c:out>
<br/>
<% }
%>
它在浏览器中打印:
initialized with some value
initialized with some value
initialized with some value
在这里,<c:out value="${tempuser1}"></c:out>
打印空值,因为在读取jstli
标记时,scriptlet 标记内声明的变量 () 不存在,因此变量(in ) 被初始化为空值。tempuser1
<c:set value="${i}" var="tempuser1"></c:set>
但是,您可以按如下方式重写您的代码,它适用于我:
<c:forEach var="tempuser" items="users">
<c:forEach items="${userList}" var="user" varStatus="status">
<c:choose>
<c:when test="${user.userID == tempuser}">
hiii
</c:when>
</c:choose>
</c:forEach>
</c:forEach>