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 页面。我正在尝试使用两个变量。但是这段代码不起作用。请帮助我。

4

1 回答 1

1

所有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>
于 2013-02-12T11:30:15.747 回答