通过JSTL在JSP页面中的Servlet中设置打印会话作用域属性

时间:2019-06-15 19:18:52

标签: java jsp servlets jstl

我想从Java Servlet设置会话范围的值,并使用JSTL将其打印到JSP页面。

这是我尝试过的:

在pom.xml中添加了依赖项:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>8.0.1</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>jstl</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

从Servlet设置属性:

    if (error) {
        HttpSession session = request.getSession(true);
        session.setAttribute("failureReason", "test error");
        response.sendRedirect("/com/test.jsp");
    }

现在,从test.jsp页面开始,如果我这样写:

<c:out value="HERE"/>

我在页面上看到输出,如何获取我的failureReason属性?这是我已经尝试过的所有方式:

        <c:if test="${not empty failureReason}">
            <c:out value="HERE"/>
        </c:if>

        <c:if test="${not empty sessionScope.failureReason}">
            <c:out value="HERE"/>
        </c:if>

        <c:if test="${sessionScope.failureReason != null}">
            <c:out value="HERE"/>
        </c:if>

        <c:if test="${failureReason != null}">
            <c:out value="HERE"/>
        </c:if>

        <c:if test="${!empty sessionScope.failureReason}">
            <c:out value="HERE"/>
        </c:if>

        <c:if test="${!empty failureReason}">
            <c:out value="HERE"/>
        </c:if>

似乎没有任何作用。

1 个答案:

答案 0 :(得分:0)

已解决。我已经按如下方式编辑了web.xml:

<web-app
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">