Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Struts Users »

Re: [OT]RE: Iterating the resultset contents in the view (jsp)

Kris Schneider

2003-07-15

Replies:

I'm not sure about other DB vendors, but Oracle provides an XML Developer's Kit
that includes:

XML SQL Utility: supporting Java, generates XML documents, DTDs and Schemas from
SQL queries.

Haven't used it before but it might be worth a look:

http://otn.oracle.com/tech/xml/xdkhome.html

The roll-your-own approach generally involves using ResultSetMetaData to
dynamically build an XML doc that "looks" something like:

<result-set>
<row id="1">
  <!-- each row subelement is a column -->
  <firstname>Joe</firstname>
  <lastname>Foo</lastname>
  ...
</row>
...
<result-set>

I don't have a specific reference handy, but you should be able to find some
example code floating around the net...

Quoting David Graham <grahamdavid1980@(protected)>:

> --- Vijay Balakrishnan <vbalakrishnan@(protected):
> > Hi,
> >
> > Is there a way to return this resultset from a SQL Query as an xml file
> > using a beanutils class or Digester ?
>
> I don't know of any class that does that. Every application will require
> its own XML format anyways.
>
> David
>
> >
> > Thanks,
> > Vijay
> >
> > -----Original Message-----
> > From: Craig R. McClanahan [mailto:craigmcc@(protected)]
> > Sent: Monday, July 14, 2003 7:25 PM
> > To: Struts Users Mailing List
> > Subject: Re: Iterating the resultset contents in the view (jsp)
> >
> >
> >
> >
> > On Mon, 14 Jul 2003, Richard Hill wrote:
> >
> > > Date: Mon, 14 Jul 2003 16:36:17 -0700
> > > From: Richard Hill <RHill@(protected)>
> > > Reply-To: Struts Users Mailing List <struts-user@(protected)>
> > > To: "'struts-user@(protected)'"
> > > <struts-user@(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

--
Kris Schneider <mailto:kris@(protected)>
D.O.Tech     <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@(protected)
For additional commands, e-mail: struts-user-help@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.