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!!!