日期:2014-05-18  浏览次数:20686 次

问一下struts里关于request.setAttribute的一个菜鸟问题
我在action   bean里调用了一个自己创建的service实体类,然后在该类中得到一个arraylist,并用request.setAttribute( "testresults ",resultList)把它放到request中.
在jsp页面上可以用 <%=request.getAttribute( "testresults ")%> 显示出
[cn.com.DAOC.basedata.test.TestService@1e4e3e4,   cn.com.DAOC.basedata.test.TestService@2dce4e,   cn.com.DAOC.basedata.test.TestService@14382c6]
使用 <bean:size   id=   "size "   name=   "testresults "   scope=   "request "/> 也可以得到结果集是3条数据
在 <logic:iterate   id=   "result "   name=   "testresults "   scope=   "request "> 也可以知道是3行数据
但是如果使用 <bean:write   name=   "TestService "   property=   "tname "   scope=   "request "/> 读取数据,就报出错误javax.servlet.ServletException:   Cannot   find   bean   TestService   in   scope   request
请问一下该如何解决

------解决方案--------------------
沙发?
------解决方案--------------------
你如果想循环打印数据的话应该:
<logic:iterate id= "result " name= "testresults " scope= "request ">
<bean:write name= "result " property= "tname " >
</logic:iterate>
------解决方案--------------------
回楼上,如果是要循环输出的话,那么bean:write 的name应该是要与logic:iterate的id一致。
如果scope为空的话,默认是从request里面取的