使用JSTL设置会话变量并在servlet / controller类中访问它

时间:2015-05-29 10:02:45

标签: java jsp java-ee servlets jstl

如果我使用JSTL设置会话变量,如下所示:

<c:set var="para" value="${CLIENT_LOGO}" scope="session"  />

那么如何在servlet / controller类中访问变量“para”?

我尝试了以下代码变体,但都没有效果。

request.getAtrribute("para") 


request.getSession().getAtrribute("para") 

注意:我不是在寻找一个在jsp中打印值的解决方案:

<c:out value="${sessionScope.para}" />

但相反,我想知道是否有任何解决方案可以在Java类中获得它。

2 个答案:

答案 0 :(得分:4)

您必须在servlet中执行以下代码:

HttpSession session = request.getSession();
String para = session.getAttribute("para");

您可以使用session

设置JSTL
<c:set var="para" value="valueHere" scope="session"  />

答案 1 :(得分:0)

可以通过参考以下代码来解决此问题。

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<html>
  <body>
    This JSP stores the ultimate answer in a session-scoped variable where
    the other JSPs in the web application can access it.
    <p />
    <c:set var="theUltimateAnswer" value="${41+1}" scope="session"  />

     Click <a href="displayAttributes.jsp">here</a> to view it.
  </body>
</html>

用于显示价值

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<html>
  <head>
    <title>Retrieval of attributes</title>
  </head>
  <body>
    The ultimate answer is <c:out value="${sessionScope.theUltimateAnswer}" /> <br/>
  </body>
</html>