SSH中传值到jsp页面后,使用iterator输出失败--在线求解答!
这个问题昨晚发过一个帖子,起初以为是service或者action里的错误,没有从数据库取到值。
后来经论坛里朋友指点,用size()发现可以获得service里的取值...然后怀疑是往request里放出来问题。
今早起来把练习demo从新做一遍,同样问题,但是发现是前台输出的问题了,下面跟code:
Java code
public String execute() throws Exception{
Map request = (Map)ActionContext.getContext().get("request");
request.put("list", this.service.findAllUser());
System.out.println("检验数据:"+this.service.findAllUser().size());
System.out.println("检验数据:"+request.size());
return SUCCESS;
控制台结果是:检验数据:4
检验数据:2
于是又在jsp检验:
HTML code
验证数据是否已传送到jsp页面:
<s:property value="#request.list.get(3).userName"/>
<s:property value="#request.list.get(3).userPassword"/>
<hr>
<table border="1">
<tr>
<td>
ID:
</td>
<td>Name:</td>
<td>Password:</td>
</tr>
<s:iterator value="#request.list" id="us">
<tr>
<td>
<s:property value="#us.userId"/>
<br></td>
<td>
<s:property value="#us.userName"/>
<br></td>
<td>
<s:property value="#us.userPassword"/>
</td>
</tr>
</s:iterator>
</table>
结果是(就不上图了,直接拉内容,其中‘空’是页面上出了表格框架但是内容为空的):
验证数据是否已传送到jsp页面: travis 123
--------------------------------------------
ID: Name: Password:
空 空 空
空 空 空
空 空 空
空 空 空
由此可见用iterator迭代此集合时是可以知道集合内有4个迭代对象,并以此压到栈顶做输出了。
但是输出值为空,说明:<s:property value="#us.userName"/> 此句有错误。
可是我不认为此句有错误诶...
求指点,在线等...
------解决方案--------------------我也是说,我刚刚回了的帖子,怎么可能没回上呢。
------解决方案--------------------<s:iterator value="#request.list" var="us">
再不行就去掉"#us.userName"的#试试
------解决方案--------------------我讨厌用struts标签,struts1,2的我都不喜欢
直接用JSTL 有这么多麻烦事么?
------解决方案--------------------用jstl吧 简单 大众
------解决方案--------------------看不出什么问题 如果 不行换个方法
改成
request.setAutributter();
------解决方案--------------------struts没有想象中的那么不堪。不过楼主的用法确实是有点麻烦。既然用到struts了,还动不动就"#request"作甚。
------解决方案--------------------request不行的话,那你就先在action中把它保存到session中,在页面在用#session得到,我怀疑你是success的页面没有指向你输出结果的这个页面。另外还有一种方式就是在action中定义list,然后set,get,呵呵,希望你早点找到解决方案。