--- Kris Schneider <[EMAIL PROTECTED]> wrote: > I'll admit that using a package called javax.servlet.jsp.jstl.sql in a > non-Web app is a bit odd, but I'm not seeing any dependencies on other > javax.servlet classes or interfaces or a Web container. I haven't tried > it, but I'd bet the examples below would work outside a Web app.
Maybe, but it just feels wrong. I know I've made a mistake when something in the app doesn't feel right. David > Worth a try sometime... > > David Graham wrote: > > That's certainly another option but keep in mind that it ties your app > to > > the web. That may be ok if you don't plan on reusing any of the code > from > > the app but DynaBeans are more appropriate for building layers that > are > > reusable in any environment. > > > > David > > > > --- Kris Schneider <[EMAIL PROTECTED]> wrote: > > > >>Another datapoint: JSTL provides an interface called > >>javax.servlet.jsp.jstl.sql.Result: > >> > >>public interface Result { > >> public SortedMap[] getRows(); > >> public Object[][] getRowsByIndex(); > >> public String[] getColumnNames(); > >> public int getRowCount(); > >> public boolean isLimitedByMaxRows(); > >>} > >> > >>and a utility class javax.servlet.jsp.jstl.sql.ResultSupport: > >> > >>public class ResultSupport { > >> public static Result toResult(ResultSet rs); > >> public static Result toResult(ResultSet rs, int maxRows); > >>} > >> > >>to accomplish something similar. The SortedMap instances returned from > > >>Result.getRows are keyed by the ResultSet's column names and use the > >>Comparator String.CASE_INSENSITIVE_ORDER so that you don't have to > worry > >> > >>about matching the case of the column name exactly. So, depending on > >>what your preference is, you can just do: > >> > >>ResultSet rs = ...; > >>Result result = ResultSupport.toResult(rs); > >>request.setAttribute(MyConstants.RESULT, result); > >> > >>or: > >> > >>ResultSet rs = ...; > >>Result result = ResultSupport.toResult(rs); > >>Map[] rows = result.getRows(); > >>request.setAttribute(MyConstants.ROWS, rows); > >> > >>David Graham wrote: > >> > >>>--- Richard Hill <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>>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? > >>> > >>> > >>>A fairly standard approach is to create a class that represents a row > >> > >>of > >> > >>>your ResultSet and store a List of those objects in the request for > >> > >>the > >> > >>>page to iterate over. > >>> > >>>If you don't want to create a class for each result, you should check > >> > >>out > >> > >>>the BeanUtils DynaBeans. This little gem: > >>> > >> > > > http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils/RowSetDynaClass.html > > > >>>allows you to transer ResultSet data to DynaBeans in a trivial amount > >> > >>of > >> > >>>code. > >>> > >>>David > >>> > >>> > >>> > >>> > >>>>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. > >>>> > >>>>Any help would be appreciated. > >>>> > >>>>Thanks, > >>>>Richard > >> > >>-- > >>Kris Schneider <mailto:[EMAIL PROTECTED]> > >>D.O.Tech <http://www.dotech.com/> > > -- > Kris Schneider <mailto:[EMAIL PROTECTED]> > D.O.Tech <http://www.dotech.com/> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]