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

struts中使用logic:iterator和bean:write输出查询结果集的问题
我想使用logic:iterator和bean:write标签把查询数据库的结果输出到jsp页面中去

这是我写的Action类的一部分:
public   ActionForward   userManage(...)
{
        AdminForm   AdminForm   =   (AdminForm)   form;
        ResultSet   rs;
        String   SQLString   =   "SELECT   *   FROM   administrator ";
        rs   =   DBOperation.DBQuery(SQLString);
        List   result   =   new   ArrayList();
        while(rs.next())
        {
                result.add(rs.getString( "admin_id "));  
        }
        request.setAttribute( "result ",   result);
        return   mapping.findForward( "userManage ");
}
也就是把结果集转化成了List然后setAttribute

在JSP页面中:
    <body>
    <table>
<tr>
<td   width= "150 "   align= "center "> 用户ID </td>
<td   width= "150 "   align= "center "> 用户密码 </td>
</tr>
<logic:iterate   id= "action "   indexId= "ind "   name= "result ">
<td> <html:multibox   property= "selectedactions ">
<bean:write   name= "action "   property= "admin_id "/>  
</html:multibox> <%=Integer.parseInt(ind.toString())+1%> </td>
</tr>
</logic:iterate>
</table>
    </body>
我想要把搜索出的admin_id这一列的数据输出到jsp页面中,但是bean:write标签的property属性总是有问题,我不确定property里应该填写什么,而且似乎无论填什么都会报错no   getter   method   in   bean   action。我不明白action这个bean的getter方法应该到哪里去定义……请各位帮帮我这菜鸟……

如果这个问题解决了还有进一步的问题:
这样做只是输出结果集中特定的一列数据,如果我想要输出所有数据,应该怎么做?

------解决方案--------------------
你不写属性啊
------解决方案--------------------
<bean:write name= "action " property= "admin_id "/>
针对JavaBean name=“bean的名称(放在四种作用域)”
property=“bean中的属性”
bean基本的方法就是getter和setter。

<bean:write name= "action " property= "admin_id "/>
用EL替换${action}
------解决方案--------------------
很显然的基础错误,在 <bean:write name= "action " property= "admin_id "/> 这句话的时候就已经出错了.而且错误是没有getter方法.因为你查询出来的结果你是直接往LIST里面ADD的.而没有把结果封装到一个JavaBean里面.把查询结果取出来后.封装到一个JavaBean中.并且提供GET SET方法.就可以.
------解决方案--------------------
在你的action里面。没有把result放入你的formbean里面,你的formbean里面没有result的get,set方法,所以 <logic:iterate id= "action " indexId= "ind " name= "result "> 是找不到你的那个result.