Hi Folks,
I have been using the taglibrary functionality of Jakarta for about 1 month.
I have developed quite a few tags (~10). One of these tags is a for loop
tag, i.e.
<for id="i" start="1" end="20">
Item number <%=i%>
</for>
Currently the variable nested inside the for tag is an java.lang.Integer
Object. This is fine for general usage as show above but if I wanted to use
the variable in an equation I have to remember to use the intValue() method,
i.e.
<for id="i" start="1" end="20">
Item number <%=i.intValue() * 100%>
</for>
As our customers will be using these tags I can see this becoming very
complicated for them. However, this would not be a problem if we could
return primitive types from the tags, in this case an int. I have looked
into the problem and implementing this would mean a change to the
TagGeneratorBase.declareVariables() method.
If the className is a primitive type, i.e. int, double, float etc. then it
should output something like the following
int i = ((Integer) pageContext.getAttribute("i")).intValue();
or
double d = ((Double) pageContext.getAttribute("d")).doubleValue();
I know that this requires that the object used in the setAttribute call
within the Tag to be the appropriate java.lang object for the primitive data
type.
I also appreciate that this change would probably go against the current JSP
specification but it would greatly simplify the usage of these types of
tags.
If anyone has a workaround that does not require any changes to Jakarta I
would really like to hear from you. Otherwise, am I expecting too much for
this type of change to be made to Jakarta.
Thanks
Glenn
|