问题描述
小弟最近写一个基于SSH框架的系统,在jsp页面使用<s:iterator>时候无法迭代显示出内容。下面是两个action,第一个是迭代输出本身使用的action;第二个是其他action,通过它跳转到使用第一个action的页面却是可以正常迭代输出。<actionname="bulletinPager"class="BulletinPager"></action><actionname="bulletinAddAction"class="BulletinAddAction"><resultname="input">Admin/bulletin_add.jsp</result><resultname="success">/Admin/bulletin.jsp</result></action>
下面是bulletin.jsp,也就是要迭代输出的页面,小弟估计是页面问题,不然别的action跳转过来也无法正常显示了<divid="bulletin_admin"style="border-right:1pxsolid#9cb2d7;"><s:actionname="bulletinPager"id="bulletin"><s:paramname="pages"value="#request.pages"/><s:paramname="pagesize"value="13"/></s:action><divclass="bulletin"style="border-bottom:1pxsolid#CCC"><liclass="id">ID</li><liclass="title">标题</li><liclass="time">发布时间</li><liclass="author">作者</li><liclass="oper">操作</li></div><s:iteratorid="b"value="#bulletin.list"><divclass="bulletin"style="height:20px;border-bottom:1pxdashed#063;line-height:20px;"><liclass="id"><s:propertyvalue="#b.id"/></li><liclass="title"><astyle="cursor:hand"onclick="doHidden(<s:propertyvalue="#b.id"/>)"><s:propertyvalue="#b.title"/></a></li><liclass="time"><s:propertyvalue="#b.addtime"/></li><liclass="author"><s:propertyvalue="#b.author"/></li><liclass="oper"><ahref="bulletin_edit.jsp?id=<s:propertyvalue="#b.id"/>">修改</a>|<ahref="bulletinDelete?id=<s:propertyvalue="#b.id"/>">删除</a></li></div><divid="<s:propertyvalue="#b.id"/>"style="border:1pxsolid#339900;display:none;font-size:12px;padding:6px;margin:6pxauto;width:580px;"><s:propertyvalue="#b.content"/></div></s:iterator></div><divstyle="text-align:center;font-size:12px;height:30px;">共${bulletin.count}条记录当前第${bulletin.pages}页共计${bulletin.totalpage}页<%Stringpagename="bulletin";%><ahref="<%=pagename%>.jsp">首页</a><ahref="<%=pagename%>.jsp?pages=${bulletin.front}">上一页</a><ahref="<%=pagename%>.jsp?pages=${bulletin.next}">下一页</a><ahref="<%=pagename%>.jsp?pages=${bulletin.totalpage}">末页</a></div>
拜托各位帮我看一下了,这个问题困扰我很多天了
解决方案
解决方案二:
上面那个bulletinPager的action代码如下privateBulletinDAObulletinDAO;privateListlist;intpages;inttotalpage;intpagesize;intfront;intnext;publicStringexecute(){if("".equals(pagesize))pagesize=13;count=bulletinDAO.findAll().size();totalpage=count%pagesize==0?count/pagesize:(count/pagesize+1);if("".equals(pages)||pages<1)this.setPages(1);if(pages>totalpage)this.setPages(totalpage);Listl=bulletinDAO.findByPage(pages,pagesize);this.setFront(pages-1);this.setNext(pages+1);this.list=l;HttpServletRequestrequest=ServletActionContext.getRequest();request.setAttribute("list",list);Iterator<Bulletin>it=list.iterator();while(it.hasNext()){System.out.println(it.next().getTitle());}returnSUCCESS;}
解决方案三:
应该是传值时候,保存在request中,那边页面没有取到值,估计是action的配置不对
解决方案四:
修改为:<s:iteratorid="b"value="#request.list">试试
解决方案五:
那就换一种方式,实际项目中没有你这么繁琐的