我目前采用的是一种类似于ResultSet的结果集对象来进行查询数据的封装,其是继承自ArrayList并加入一些象next之类的方法。不过现在有个问题就是前台我在取具体数据的时候还是须要写这样的代码<%=lstData.getString("id")%>,不过这也是没有办法的事情好象毕竟其不是对象可以通过jstl来写。你们是否采用的是对象的list的结果集呢,这样的话在多表的操作的时候你们又是如何处理,因为正常情况下一般是一个表对应一个对象。

解决方案 »

  1.   

    <logic:notEmpty name="lstUser" scope="request">
    <tbody>        <logic:iterate id="lstUser"
                            name="lstUser"
          type="com.ylkj.cis.archives.bo.AmUser"
                            scope="request" >
    <tr height=24 align="left" class="mainTd">    <td align="center" width="5%"><input  name="userId" id="userId"  type="checkbox" value="<bean:write name="lstUser" property="id" />" onclick="CheckControl(userForm.userId,userForm.control)"></td>
    <td ><bean:write name="lstUser" property="id" /></td>
    <td ><bean:write name="lstUser" property="naUser" /></td>
    <td ><bean:write name="lstUser" property="sectMeter" /></td>
                                                                             <td ><bean:write name="lstUser" property="addrElec" /></td>
                                                                            </tr>
            </logic:iterate>
    </tbody>    </logic:notEmpty>这是可以完全用标签来写因为是对象结果集
      

  2.   

    <logic:notEmpty name="lstTask" scope="request">
    <tbody>             <logic:iterate id="lstTask"
                            name="lstTask"
             type="com.ylkj.commons.db.DataSetRow"
                            scope="request" >
    <tr  height="24" align="center" Id="<%=lstTask.getString("taskId")%>" taskSeq="<%=lstTask.getString("taskSeq")%>" style="cursor:hand;" onclick="stop(<%=lstTask.getString("taskId")%>)">
    <td width="9%" align=left><%=lstTask.getString("handbillId")%></td>
    <td width="9%" align=left><%=lstTask.getString("taskId")%></td>
    <td width="12%" align=left><%=lstTask.getString("processName")%></td>
    <td width="15%" align=left><%=lstTask.getString("describe")%></td>
                                        <td width="35%" align=left><%=lstTask.getString("content")%></td>
    <td width="15%" align=left><%=lstTask.getString("timeProduce")%></td>
    </tr>
            </logic:iterate>
    </tbody>    </logic:notEmpty>这是通过我们自已的结果传到前端后进行输出的数据 存在<%=.......%>这样的代码
      

  3.   

    <%!
    public ArrayList executeQuery(String sql,String[] cols) throws SQLException
    {
          Connection conn=null;
          Statement stmt=null;
          ResultSet rs=null;
          ArrayList AL=new ArrayList();
         
      int size=cols.length;
         
         try
         {
           conn=sfca.common.ConnectionManager.getConnection();
           
           try
           {
              stmt=conn.createStatement();
              
           try
           {
           rs=stmt.executeQuery(sql);
               while(rs.next())
               {   
          String[] str=new String[size];     
          for(int i=0;i<size;i++)
         {
         str[i]=rs.getString(cols[i]);
           }
         AL.add(str);
               }
           }
           finally
           {
                  rs.close();
      rs=null;
           }
        
           }
           finally
           { 
           stmt.close();
           stmt=null;
           }
         }
         finally
         {
            conn.close();
         conn=null;
         }     return(AL);    }%><%
    ArrayList list_software=executeQuery("select a.id,a.name from a left outer join b on a.id=b.id",new String[]{"id","name"});for(int i=0;i<list_software.size();i++)
    {
    Sting id==((String[])list_software.get(i))[0];
    String software_cn=((String[])list_software.get(i))[1];
    }
    %>