在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
上面不知官方的例子为何不行?如果你知道,请不吝赐教!谢谢!
有空的话,欢迎到
红番薯逛逛
分享到:
相关推荐
${pageContext.request.contextPath}是JSP取得绝对路径的方法 例如:浏览器地址栏为”http://localhost:8080/test/index.jsp “ 那么:取出来的就是”http://localhost:8080/test”,简写为”/test” /test 等价于 ...
${pageContext.request.contextPath}/checkcode.jsp"/> 另外在web.xml中配置验证码类的加载: <servlet-name>CheckCodeImage <servlet-class>com.netshop.common.util.CheckCodeImage</servlet-class> ...
在JSP里取${pageContext.request.contextPath},方式一是可以正常取到,但方式二却取到的是 字符“${pageContext.request.contextPath}” 方式一: [removed] var t = "${pageContext.request.contextPath}"; ...
好东西,希望对你有帮助 pageContext.getAttribute("username") -> request.getAttribute("username") -> session.getAttribute("username") -> application.getAttribute("username")
NULL 博文链接:https://albert0707.iteye.com/blog/562969
类似java中的import语句prefix="s" 引用的名称在页面可以使用,就像java中生成的一个对象名,以后调用的时候直接使用就可以了uri="/struts-tags"%表示标签库的路径。相当于import一个具体的类~ 3、${pageContext....
${pageContext.request.remoteUser} 取得用户名称${pageContext.request.remoteAddr } 取得用户的IP 地址${pageContext.session.new} 判断session 是否为新的${pageContext.session.id} 取得session 的ID${...
<li><a href="${pageContext.request.contextPath}/student!list">学生信息管理</a></li> <li><a href="${pageContext.request.contextPath}/exam!list">学生作业情况查询</a></li> <li><a href="${pageContext....
href="${pageContext.request.contextPath}/ga/changeTaskAssigment.action?taskInstanceId=<s:property value="id"/>" >我来处理)</s:if> 受评对象准备评级资料"}'> ${pageContext.request.contextPath}/ga/...
${pageContext.request.contextPath}/my/login" method="post"> ${message } 邮箱: 密码: 登录"> ${pageContext.request.contextPath}/my/regist">注册 ${pageContext.request....
imagePath="${pageContext.request.contextPath}/images/*.gif" action="${pageContext.request.contextPath}/presidents.run" filterable="false" sortable="false" > ... 里的属性还有......
link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/extjs/pulgins/datetime/datetime.css" /> [removed][removed] [removed][removed] [removed][removed] [removed]...
自己在实际开发中,发现并解决问题的总结。
(Integer) pageContext.getAttribute("pagecount"); curpage = (Integer) pageContext.getAttribute("curpage");%> data="translateURL({Status}, 'llinker30', {ROWID}, '{ChannelCode}', '{ContentCode}','...
本方法是基于iframe实现的,需求是form表单提交带有文件上传的input标签,因此不能使用ajax来提交 首先: 代码如下: <form id=”form0″ action=”${pageContext.request.contextPath}/news/baikeAdd.form” ...
${pageContext.request.remoteAddr } 取得用户的IP 地址 ${pageContext.session.new} 判断session 是否为新的 ${pageContext.session.id} 取得session 的ID ${pageContext.servletContext.serverInfo} ...
也就是说,如果在page.getAttribute()找不到,再去request.getAttribute,如果request找不到,再去session里找,session里找不到,再去application里 page.getAttribute——–>request.getAttribu
pageContext.setAttribute("currentPage", request .getParameter("currentPage")); } %> select* from anime </sql:query> <!-- 得到所有记录数 --> <c:set var="resultNum"> ...