I am doing a proof of concept moving some JSP code from IBM Websphere
to Tomcat and I thought I would try dbtags to replace the tsx tags that IBM
provide as the tsx tags are not available for native Tomcat (as far as I
know).

In doing the conversion I have hit a number if problems, some of which were
easy to resolve, but others either had no obvious solution or raised 
suggestions for enhacements for dbtags.  So here is the list:-

1) wasEmpty and wasNotEmpty.  The single case of (not)empty strikes me
as less than is needed.  There are for instance many cases where you
are expecting just one row, and there is no easy way to validate that.
However I would suggest that there are also cases where other fixed numbers
are expected, and so rather than just add was(Not)SingleRow it would be
better to have a general mechanism.

2) Large ResultSets.  JDBC 2.0 added the absolute and relative methods
for navigating around large ResultSets, dbtags does not seem to provide
access to these methods.  I have a result set which is of very variable
size, from just a few to many hundred.  Displaying all at once was seen
by the users as a problem, so I was asked to put in a scrolling mechanism.
This I did as the ResultSet object in the tsx case had a getValue( col, row)
method, which I could use to index around the ResultSet.  As it happened 
I always went upwards from a starting point, until I had the window size
number of columns.  Before you say that I should put the result into a
Vector and pass that from invocation to invocation, they specifically 
wanted the query re-issued each time.  So perhaps we need some kind of 
start attribute, and possible a count attribute, so that the ResultSet
could be positioned before the loop starts, and limited as to the maximum
number of returned rows.  The alternative would be to do the looping 
myself in Java code rather than using the tags, but that rather defeats
the purpose of having tags.

3) returns on wasEmpty.  In one part of my code I wanted to forward to
another JDP page if the result of a query was empty.  So I coded:-

<sql:wasEmpty>
  <jsp:forward page="another.jsp" />
  <% return; %>
  </sql:wasEmtpy>

to replace:-

<% if( users.size( ) == 0)
     { %>
       <jsp:forward page="another.jsp" />
<%     return;
       }
  %>

but the JSP compiler complains about an unreachable line I guess after
the return.  What I found without the return in the original code was
that it tried to execute the rest of the JSP page, and in this case
I do not want it to execute, rather I want the other page immediately.

I could not find any discussion of these items with google, so I hope
that I have not missed prior discussion of these points.

Thank you in advance.

David

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

Reply via email to