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

struts 标签的问题,高手进
在servlet中往客户端写输出流前,在session中放了一个List,这个List中的每个元素都是一个VO对象,现在想在返回的jsp页面中遍历这个List中每个VO对象的属性,代码如下:
服务端servlet:
request.getSession(true).setAttribute( "treeNodes ",lsTmp);
response.setContentType( "text/html;charset=UTF-8 ");
response.setHeader( "Pragma ",       "no-cache ");      
response.setDateHeader( "Expires ",       0);      
PrintWriter   out   =   response.getWriter();
out.write( "OK ");
out.flush();
out.close();

jsp页面:
<logic:present   name= "treeNodes "   scope= "session "   >
          <logic:iterate   id= "menuItem "   name= "treeNodes "   type= "tangqy.vo.TreeNodeVO ">
          alert( 'here1== '+ ' <bean:write   name= "menuItem "   property= "nodeValue "/> ');
          alert( 'here2== '+ ' <bean:write   name= "menuItem "   property= "nodeID "/> ');
</logic:iterate>
</logic:present>  


现在问题是服务端调试没问题,List肯定放到session中去了,但在jsp页面中 <logic:present   name= "treeNodes "   scope= "session "   >
始终在session中找不到treeNodes对象

有哪位高人知道是怎么一回事情么?

------解决方案--------------------
<%@ page session= "true " %>
<%
Object obj = session.getAttribute( "treeNodes ");
if(obj!=null){

%>
<logic:notEmpty>
<logic:iterate id= "menuItem " name= "treeNodes " type= "tangqy.vo.TreeNodeVO ">
</logic:iterate>
</logic:notEmpty>
<%}%>
------解决方案--------------------
yuanbin_1983() 正解。
为什么用present呢?
直接用NotEmpty判断该Session是否为空,然后用iterate跌代就行了,多容易啊。
在需要使用之的时候,用 <bean:write name= " " property= " "/> 就可以了。
------解决方案--------------------
<logic:present name= "treeNodes " scope= "session " > 这句写错了
logic:present的name属性是指定相应的javaBean,你的treeNodes不是JavaBean!!!