0
<%! int x=5; %>


        <c:choose>
            <c:when test="${x eq 5}"><p>hello1</p></c:when>            
            <c:when test="${x gt 10}"><p>}hello3</p></c:when>
            <c:otherwise>Value is ${x},Not hello</c:otherwise>
        </c:choose>

为什么上面的代码从我的 jsp 页面给出 not hello 的输出?为什么它没有给出 hello1 作为输出?

4

1 回答 1

3

因为${x}不评估局部变量和实例变量。它查找页面,然后是请求,然后是会话,然后是名为“x”的应用程序范围的属性。如果您使用,上面的代码将起作用

<% pageContext.setAttribute("x", 5) %>

或者,更清洁,因为应该避免使用 scriptlet:

<c:set var="x" value="5" />
于 2013-05-12T08:11:47.587 回答