日期:2014-05-20  浏览次数:20736 次

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"作甚。

探讨
我讨厌用struts标签,struts1,2的我都不喜欢


直接用JSTL 有这么多麻烦事么?

------解决方案--------------------
request不行的话,那你就先在action中把它保存到session中,在页面在用#session得到,我怀疑你是success的页面没有指向你输出结果的这个页面。另外还有一种方式就是在action中定义list,然后set,get,呵呵,希望你早点找到解决方案。