如何比较<c:when> </c:when>中的两个变量

时间:2013-02-12 10:59:48

标签: java jsp jstl el

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

1 个答案:

答案 0 :(得分:1)

将在任何 scriptlet 标记之前读取所有 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

这里,<c:out value="${tempuser1}"></c:out>打印空值,因为当读取 jstl 标记时,scriptlet标记内声明的变量(i)不存在,因此变量{{ 1}}(在tempuser1中)初始化为空值。

但是,您可以按如下方式重写代码,它适用于我:

<c:set value="${i}" var="tempuser1"></c:set>