通用方法接收一个sql语句 返回一个装有LinkedHashMap的ArrayList集合 其中LinkedHashMap的KEY为数据库字段名 VALUE为该字段的值public static ArrayList delRes(String sql) {
  ArrayList<LinkedHashMap> list = new ArrayList<LinkedHashMap>();
  Connection conn = null;
  PreparedStatement stmt = null;
  ResultSetMetaData metaData=null;
  try {
    conn = ConDB.getCon();
    stmt = (PreparedStatement) conn.prepareStatement(sql);
    ResultSet result = stmt.executeQuery();
    metaData=result.getMetaData();
    while (result.next()) {
LinkedHashMap v = new LinkedHashMap();
for (int i = 1; i <= metaData.getColumnCount(); i++)
  v.put(metaData.getColumnLabel(i),result.getObject(i));
list.add(v);
    }
  } catch (SQLException e) {
    e.printStackTrace();
  } finally {
    try {
if (stmt != null) {
   stmt.close();
}
if (conn != null) {
   conn.close();
}
    } catch (SQLException e) {
e.printStackTrace();
    }
  }
  return list;
}在就jsp里生成bean对象 然后用key取出value就好
STRUTS我没用过 我用JSF JSF里有可以自动迭代结果集的标签 STRUTS里也应该有 你查下API就知道了

解决方案 »

  1.   

    struts中有循环标签,但具体不知道怎么用!
    <logic:iterate>
    </logic:iterate>谢谢楼上的回答,我不希望JSP页面包含任何JAVA代码!
    是否能用STRUTS的标签或其它更好的方法实现?
      

  2.   

    那就用STRUTS的标签啊 查下API或上百度 GOOGLE搜一下就有了啊 照猫画虎应该没问题吧?
      

  3.   

    不可能 STRUTS 都是多少年的东西了 网上没有???
      

  4.   

    谢谢 楼上的朋友!
    在你的提示下 我这样写的
    package add;import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;
    import java.util.ArrayList;import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import add.DBManager;public class ViewMessageAction extends Action {
        public ActionForward execute(ActionMapping actionMapping,
                                     ActionForm actionForm,
                                     HttpServletRequest servletRequest,
                                     HttpServletResponse servletResponse)throws Exception {
            Connection con = null;
            String sql = "select * from messagess";
            AddMessageActionForm aaf = new AddMessageActionForm();
            con = DBManager.getConnection();
            ArrayList list = new ArrayList();
            try{
            Statement stm = con.createStatement();
            ResultSet rs = stm.executeQuery(sql);
            while(rs.next())
            {
               aaf.setName(rs.getString(2));
               aaf.setSex(rs.getString(3));
               aaf.setAge(rs.getString(4));
               aaf.setBirthday(rs.getString(5));
               aaf.setSchool(rs.getString(6));
               aaf.setFinishschool(rs.getString(7));
               aaf.setSpecialty(rs.getString(8));
               aaf.setInterest(rs.getString(9));
               aaf.setJob(rs.getString(10));
               aaf.setWorktime(rs.getString(11));
               list.add(aaf);
            }
            servletRequest.setAttribute("aaf",list);
            rs.close();
            stm.close();
            }catch(Exception e)
            {
            e.printStackTrace();
            }        return actionMapping.findForward("view");
        }
    }
    <logic:iterate id="aafs" name="aaf"  indexId="index" >
      <tr>
    <td><bean:write name="aafs" property="name"/></td>
    <td><bean:write name="aafs" property="sex"/></td>
    <td><bean:write name="aafs" property="age"/></td>
    <td><bean:write name="aafs" property="birthday"/></td>
    <td><bean:write name="aafs" property="school"/></td>
    <td><bean:write name="aafs" property="finishschool"/></td>
    <td><bean:write name="aafs" property="specialty"/></td>
    <td><bean:write name="aafs" property="interest"/></td>
    <td><bean:write name="aafs" property="job"/></td>
    <td><bean:write name="aafs" property="worktime"/></td>
      </tr>
      </logic:iterate>
      

  5.   

    客气了 我没用过STRUTS 只用过JSF 因为都是框架通过你的程序我也了解到了STRUTS的一些使用方法 互相学习嘛 ^_^