JSTL不选择c:set或pageContext变量,并且c:选择同时显示c:when和c:otherwise

问题描述 投票:0回答:1

我在这里迷失了方向。我正在修改一个JSP,其中包括一个运行代码的JSPF,其中包括对pageContext的以下分配:

pageContext.setAttribute("basicUser", basicUser);

basicUser的类型为布尔值。当我进入JSP的正文时,我尝试像这样访问pageContext属性:

<c:set var="basicUser" value="${pageContext.getAttribute('basicUser')}"/>
    <c:choose>
      <c:when test="${basicUser}">
          ...
      </c:when>
      <c:otherwise>
          ...
      </c:otherwise>
    </c:choose>

我什至尝试<c:set var="basicUser" value="true"/>只是尝试硬编码其中的值,直接设置test="${pageContext.getAttribute('basicUser')}"并在请求范围而不是页面范围上设置basicUser属性,但是每次都得到相同的结果-两者c:whenc:otherwise被渲染,我完全无法使用pageContext.getAttribute('basicUser')打印basicUserc:out的值。

我想念的是什么?有没有使用JSTL来访问我未尝试的pageContext属性的方法?预先感谢!

java jsp jstl
1个回答
0
投票

我认为JSP页面和片段之间不共享页面范围。尝试使用请求范围:

request.setAttribute("basicUser", basicUser);
<c:when test="${requestScope.basicUser}">
© www.soinside.com 2019 - 2024. All rights reserved.