我用Struts做一个报表统计系统
从一张有很多字段的表里面得到一条select结果集
现在我要在页面打印出来··因为这个表的字段有几十个·我想到两个方法:
1.建一个跟这张表字段对应的BEAN,然后把查询结果以TableBean.setId(rs.getString("id"))的形式写入BEAN,最后通过session.setAttribute("Tbean",TableBean)把bean传到页面··2.直接用String id=rs.getString("id"),session.Attribute("id",id)把每个字段传回页面··(单条记录的话用这个)这两种做法都需要写很多的rs.getString("****")...
所以我想问你一下有更简洁的方法么?
有没有不用这些页面空间(page、request、session)传结果的方法?
session容量有限,在什么情况下清空比较好?
 

解决方案 »

  1.   

    个人建议用第一种方式
    1.建一个跟这张表字段对应的BEAN,然后把查询结果以TableBean.setId(rs.getString("id"))的形式写入BEAN如果查询结果多的话,可以将BEAN装入VECTOR中,然后将VECTOR传到页面进行显示就OK了
      

  2.   

    for(int i=0;i<vecMy.size();i++)
    {
    TableBean temp = new TableBean();
    temp = (TableBean)vecMy.elementAt(i);........
      

  3.   

    字段多又不是LZ的问题,个人觉得写到BEAN里面去解决
    有没有不用这些页面空间(page、request、session)传结果的方法?
    如果由于内存问题一定要放在别的地方的话,只有文本了~~查询出来的值在XML或追加到PROPERTIES里~~
      

  4.   

    用spring框架和好的编译工具比如Eclipse,NetBean等可以减少很多你说的这个get...() set...()操作,他们可以自动生成,Spring也可以自动的帮你从数据库的字段赋值到相应的实体类的属性中。然后你可以把这个实体类返回到页面,至于在页面中用一个个get()的方法取得不同的属性值这个是少不了的了。如果真要发懒,自己做一个方法来简化这个过程也是可以的,不过没这个必要。
      

  5.   

    sixme (子曾经曰过:“基础和算法才素王道”。) =====支持!!程序 = 算法 + 数据结构。
      

  6.   

    将检索出来的结果分为N个BEAN对象,存到LIST中,再将list用request传到页面。
    JSP用一个<c:forEach>循环直接就出来了。
      

  7.   

    只能用session .兄弟不要再想别的方法了。
      

  8.   

    session容量有限,在什么情况下清空比较好?
    这个好办啊.只要存储一个字段(当然是主码了。)
    然后在别的页面再用这个主码从数据库中取啊.
      

  9.   

    用完你需要的数据就可以把Session清空啊。楼主犯傻啦?
      

  10.   

    没必要用session吧,用request就行,把每条数据存在一个bean里,多个bean又存在一个List里,然後用request传到页面显示出来就可以了,页面显示的时候还可以用标签,简洁
      

  11.   

    try{
    form f0 = new form();//Your Form Obj
    Class c = Class.forName("from940.form"); 
    Field[] f = c.getDeclaredFields();//All Field

    for(int i=0;i<f.length;i++){
    Object[] param = new Object[1];//parameter From DB
    Class[] cls = new Class[1];//parameter Type
    param[0] = i+"" ;
    cls[0] = String.class;
    Method m = c.getMethod("set" 
    + f[i].getName().substring(0,1).toUpperCase()
    + f[i].getName().substring(1), cls);
    m.invoke(f0,param);
    } }catch(Exception e){}
      

  12.   

    读ds的话,可以用ResultSetMetaData, ResultSet的getMetaData()方法得到对象。