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/>



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



Reply via email to