请求属性和页面上下文属性



我遇到了一个场景,我在Action类中设置了属性:

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

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

<c:forEach items="${itemList}" var="individualItem">
<!-- rest of the code -->

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

<% 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、

规则:

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

在您的示例中,pageContext.getSession().getAttribute("itemList")返回null,因为您在请求中设置了属性而不是会话,但为什么EL代码返回null,我不明白为什么。。。。。您可能在jsp中定义了一个名为"itemList"的本地变量,该变量为null,因此它首先读取它,请在此处检查答案

相关内容

  • 没有找到相关文章

最新更新