假设A,B两张页面.我在页面A中通过文本框和一个*.do把数据传到一个actionform实例中.
然后我打算根据这个传入的条件在oracle数据库中查询有关的记录,按照struts的思想,逻辑业务的完成内容应该在一个Action类的子类中的execute方法中实现.
我想把搜到的结果集ResultSet传递给第2个页面,然后在页面上显示出来.但是这个execute不是只能返回一个actionforward吗,也就是说只能用来控制页面的翻转.那么我这个ResultSet结果集该怎么传递并显示呢.
或者说,我以上对struts的理解根本就是错的,哪位高手指点一下好吗.我在这里给了50分,同样的问题我也在java web开发区里问了,如果这里分数不够的话也可以到那里回答.
不要直接把resultset传递到别的地方,这样你根本就无法进行数据库操作相关的事务处理和异常处理。应该从resultset里面把记录取出来之后封装到javabeans里面再将javabeans封装到collection里面最后返回一个collection,到了view端再遍历collection取出数据。
既然已经在用struts,那么表明你应该有一定的程序设计能力了,但是如果目前还不具备相应的程序设计能力,我建议你还是先别用struts了。
把得到的结果集封装到VO值对象里,再添加到collection中,把collection放到session对象中,这样就可以在客户显示端遍历collection中的数据.
对,我也同意不能把ResultSet传到页面的观点。你可以设一个VO层,一个DAO层,在DAO层中进行数据库访问操作,并把从数据库中查出的值封装进一个List(或者VO),然后将这个List返给页面。当然,如果你坚持要把ResultSet返回给页面也可以,只需要在那个Action中写request.setAttribute("rs",rs),然后再jsp中写ResultSet rs = (ResultSet)request.getAttribute("rs")就可以了。
在Action中把ResultSet中的值读出来,封装成一个集合类(推荐用ArrayList),
然后用request.setAttribute("name",arraylist)方法保存在request中,
jsp页面用request.getParameter("name")获得集合对象,然后在页面显示!