Craig wrote:
> ... I just checked in a change in commons-beanutils that can...
                                    ^^^^^^^^^^^^^^^^^

http://jakarta.apache.org/builds/jakarta-commons/nightly/commons-beanuti
ls/

--
James Mitchell
Software Engineer/Open Source Evangelist
http://www.open-tools.org

"C makes it easy to shoot yourself in the foot; C++ makes it harder, but
when you do, it blows away your whole leg." 
- Bjarne Stroustrup


> -----Original Message-----
> From: Mervin Williams [mailto:[EMAIL PROTECTED]] 
> Sent: Monday, January 06, 2003 1:16 PM
> To: 'Struts Users Mailing List'
> Subject: RE: Iterate tag with ResultSet Example
> 
> 
> In your sample code you use the RowSetDataSource class.  In 
> what package
> is this class located?
> 
> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]] 
> Sent: Sunday, January 05, 2003 5:49 PM
> To: Struts Users Mailing List; [EMAIL PROTECTED]
> Subject: Re: Iterate tag with ResultSet Example
> 
> 
> 
> 
> On Sat, 4 Jan 2003, Mervin Williams wrote:
> 
> > Date: Sat, 4 Jan 2003 19:27:48 -0600
> > From: Mervin Williams <[EMAIL PROTECTED]>
> > Reply-To: Struts Users Mailing List 
> <[EMAIL PROTECTED]>,
> >      [EMAIL PROTECTED]
> > To: [EMAIL PROTECTED]
> > Subject: Iterate tag with ResultSet Example
> >
> > Can someone please provide sample code that demonstrates the use of 
> > passing a database SQL ResultSet to the logic:iterate tag?
> >
> 
> In general, this is going to be a problem.
> 
> It would be technically feasible to pass in a 
> java.sql.ResultSet object,
> if the tags were enhanced to know how to pull the data out of them.
> However, this requires that the ResultSet (and its associated 
> Statement)
> remain open until the JSP page was done with it.  This would 
> violate the
> separation of business and presentation logic that is one of the key
> features of Struts.
> 
> As it happens, though, I just checked in a change in commons-beanutils
> that can be used for this purpose, if you're using Struts 1.1.
> Basically, there's now a really simple way to copy the contents of a
> ResultSet into a list of DynaBeans.  This really is a *copy* 
> operation,
> so you have to pay some performance and memory cost, but it lets you
> pass the data without having to create custom beans, and 
> without leaving
> the ResultSet open.
> 
> You'll need to grab a very recent nightly build of commons-beanutils
> from:
> 
>  
> http://jakarta.apache.org/builds/jakarta-commons/nightly/commo
> ns-beanuti
> ls
> 
> and replace your commons-beanutils.jar file if you want to try this.
> 
> > Please include the .java and .jsp code.
> >
> 
> In your Java code, you'd do something like this:
> 
>     Connection conn = ...;             // Get connection from the pool
>     Statement stmt = conn.createStatement();
>     ResultSet rs = stmt.executeQuery("select custid, name from
> customers");
>     RowSetDataSource rsdc = new RowSetDataSource(rs);
>     rs.close();
>     stmt.close();
>     ... return connection to the pool ...
>     request.setAttribute("custoemrs", rsdc.getRows());
> 
> In your JSP page, treat this List of DynaBeans like you would 
> any other
> collection of beans, because all the Struts tags know how to deal with
> DynaBeans.
> 
>     <table>
>       <tr>
>         <th>Customer ID</th>
>         <th>Customer Name</th>
>       </tr>
>       <logic:iterate name="customers" id="customer">
>         <tr>
>           <td><bean:write name="customer" property="custid"/></td>
>           <td><bean:write name="customer" property="name"/></td>
>         </tr>
>       </logic:iterate>
>     </table>
> 
> See the updated Javadocs for commons-beanutils (included in the binary
> distribution) for class org.apache.commons.beanutils.RowSetDataSource
> for more information about this class.
> 
> Craig
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:struts-user-> [EMAIL PROTECTED]>
> For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]>
> 
> 


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to