On Mon, 14 Jul 2003, Richard Hill wrote:
> Date: Mon, 14 Jul 2003 16:36:17 -0700 > From: Richard Hill <[EMAIL PROTECTED]> > Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]> > To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > Subject: Iterating the resultset contents in the view (jsp) > > Hi, > I'm working on an action that gets a resultset from a database table > containing 4 columns. I need to pass that information back to the view (jsp) > which will iterate over results. My question is what is the best way to do > this. Do I create an array for each row in the resultset and insert each > array in a collection, passing that back to the view? > That is certainly one approach. Indeed, commons-beanutils has a useful little class (org.apache.commons.beanutils.RowSetDynaClass) that is ideally suited to this use case. It creates a List of DynaBeans representing the data content returned by the SELECT. Because it makes a copy, you can close the result set (and return the connection back to the connection pool) before forwarding to the page. > If so, how would you iterate over each array in the collection with the > logic:iterate taglib? All of the examples only show iterations over single > column lists. > Let's assume you have done this in your Action: ResultSet rs = ...; RowSetDynaClass rsdc = new RowSetDynaClass(rs); rs.close(); request.setAttribute("customers", rsdc.getList()); so you now have a request attribute containing the list. Now, in your page, you can say things like: <logic:iterate id="customer" name="customers"> Name is <bean:write name="customer" property="name"/> Status is <bean:write name="customer" property="status"/> </logic:iterate> and so on. Details of RowSetDynaClass are in the javadocs for BeanUtils: http://jakarta.apache.org/commons/beanutils/ > Any help would be appreciated. > > Thanks, > Richard > Craig --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]