Struts2标签 使用pageContext.getAttribute("myAtt")返回null

在Struts2 API帮助文档中IteratorGeneratorTag类的说明找到如下例子
Example Three:
Generate an iterator with var attribute
 <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," var="myAtt" />
<%
Iterator i = (Iterator) pageContext.getAttribute("myAtt");
while(i.hasNext()) {
String s = (String) i.next(); %>
<%=s%> <br/>
<% }
%>

This generates an iterator and put it in the PageContext under the key as specified by the var attribute.

后copy上面整段代码,执行后,页面显示错误信息,报java.lang.NullPointerException。

改代码,如下:
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," var="myAtt" />
<%
Iterator i = (Iterator) pageContext.getAttribute("myAtt");
if(i == null) {%>
<h1>OH,My God!</h1>
<%}else{
while(i.hasNext()) {
String s = (String) i.next(); %>
<%=s%> <br/>
<% }

}%>

再次执行,结果显示:OH,My God!
从结果可知,pageContext.getAttribute("myAtt");获取不到对象,把它改为pageContext.getAttribute("myAtt",PageContext.REQUEST_SCOPE);即可,结果显示:
aaa
bbb
ccc
ddd

PS:
1.在Debug的过程中也未发现pageContext的attributes下有myAtt的key,而在value stack中可以找到。
2.Struts2中的request是org.apache.struts2.dispatcher.StrutsRequestWrapper。
Method Summary
Object getAttribute(String s)
Gets the object, looking in the value stack if not found

上面不知官方的例子为何不行?如果你知道,请不吝赐教!谢谢!
有空的话,欢迎到[url=http://hongfanshu.blogbus.com/]红番薯[/url]逛逛
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值