すべてのjstlタグは、スクリプトレットタグの前に読み取られます。したがって、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
ここでは、 jstl<c:out value="${tempuser1}"></c:out>
タグの読み取り時にscriptletタグ内で宣言された変数(i
)が存在しないため、空の値を出力します。そのため、変数(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>