Why dont you wrap rowsets like you do with Multipart Request. ??
----- Original Message -----
From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, July 07, 2001 5:30 PM
Subject: Re: Struts 1.1 To-Do - RowSets
>
>
> On Sat, 7 Jul 2001, Ted Husted wrote:
>
> > "JDBC RowSet Support. Update all of the relevant tags to get and set
> > attributes from a JDBC RowSet (or ResultSet) object ... "
> >
> > So, I'm itching to do something about this. I've been wrapping my
> > RowSets up in iterators and conventional JB facades, but it's like way
> > too much work.
> >
> > I'm just getting started so if anyone has any "whiteboard" notes they'd
> > like to pass along, feel free.
> >
>
> I've only got some thoughts that haven't ever made it into a document yet
> ...
>
> The basic dream was that a page developer could use the <bean:write> and
> friends type tags that they know and love, but the tag would be smart
> enough to understand that a RowSet is treated like an array of JavaBeans,
> with the columns being the properties. In an ideal world, the Action
> could start out passing the RowSet, but change to an encapsulating
> JavaBean, without the pages accessing this data needing to be changed.
>
> Conceptually, this can be accomplished in (at least) two different ways:
>
> * Extend BeanUtils/ConvertUtils/PropertyUtils to do the conversions
> as necessary. Advantage: useful elsewhere besides in Struts-based
> JSP pages. Disadvantage: makes a RowSet a "special case", so BeanUtils
> and friends don't really treat all objects the same (the way that
> they do now).
>
> NOTE: if you decide to go this way, I'd prefer that the work be
> done on the commons version of these classes. I want to migrate
> Struts 1.1 to these (as soon as I go create releases over there).
>
> * Extend all the appropriate tags (and include functionality in any
> future tags) to do an appropriate "if this is a RowSet, do this;
> otherwise use PropertyUtils as before" logic. Advantage: keeps
> BeanUtils et. al. logically pure and simple. Disadvantage: there
> are *lots* of tags that want this (although maybe we can abstract
> it into RowSetUtils type functionality so it's pretty easy).
>
> An important consideration if you use real ResultSets is in how to ensure
> that the ResultSet (and the corresponding Statement) are closed, and the
> underlying connection returned to the connection pool. It might be best
> to mandate the use of RowSet instead, so that we can use the
> "detached" RowSet implementation. That way, the Action would copy the
> data into the RowSet, and release the database resources, before
> forwarding to the page. (Note to self -- check the redistribution terms
> on the Sun CachedRowSet implementation).
>
> One more thing to think about at design time - even though it is not very
> Model 2-ish, some folks are going to want to use things like the
> "dbtags" library in jakarta-taglibs to encode their SQL queries inside
> the page. It's worth at least a few minutes of thought to see if we can
> cleanly interoperate with those sorts of mechanisms.
>
> > The original TODO included XML DOMs, but I thought I would start with
> > ResultSet/RowSets.
> >
>
> Makes sense.
>
> An additional complicating factor -- the JSP standard tag library is
> likely to make an early access version of their reference implementation
> available "real soon now", under the jakarta-taglibs project. I know that
> accessing RowSets in a manner similar to this has been discussed -- we
> might want to see if the problem has been solved already there before
> investing lots of effort building it into the Struts tags.
>
> > -Ted.
> >
>
> Craig
>
>