1
<% for(int count=0;count<lengthOfUser;count++) {%>
<%int tempuser= users[count]; %>

<c:forEach items="${userList}" var="user" varStatus="status">

        <c:choose>
             <c:when test="${user.userID == tempuser}">
                   hiii
                         </c:when>

    </c:choose>
</c:forEach>
<%}%>

これは私のjspページです.2つの変数を比較しようとしています.しかし、このコードは機能していません.助けてください.

4

1 に答える 1

1

すべての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>
于 2013-02-12T11:30:15.747 に答える