JSP中的request属性和pagecontext属性

时间:2015-11-04 11:52:21

标签: jsp attributes request struts pagecontext

我遇到过在Action类中设置属性的场景:

request.setAttribute("itemList", itemList); /* valid List item - confirmed */

在JSP上,我尝试在forEach标记中使用它作为

<c:forEach items="${itemList}" var="individualItem">

<!-- rest of the code -->

它被评估为空项。但是我在这个标签之前添加了一个小小脚本:

<% List<MyItem> itemList = (List<MyItem>)request.getAttribute("itemList"); // evaluates as my valid item list 
   List<MyItem> itemList = (List<MyItem>)pageContext.getSession().getAttribute("itemList"); // evaluates as NULL
%>

这是否意味着我最好使用pageContext或session Attribute而不是在我的前端请求Attribute?或者有规则吗?

KR,

1 个答案:

答案 0 :(得分:0)

规则:

这取决于您的要求,Session在整个会话中保持数据(即变量值)(即直到用户关闭浏览器或会话超时),而Request会在单个请求中保存数据,这包括情况当请求被重定向或分派时。

在您的示例中,pageContext.getSession()。getAttribute(“itemList”)返回null,因为您在请求中设置的属性不是会话,而是为什么EL代码返回null,我无法弄明白为什么。 ....可能是你在jsp中定义了名为'itemList'的局部变量,该变量为null,因此它首先读取它,检查answer here