tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arun Katkere <katk...@praja.com>
Subject Spec Q/TagBeginGenerator behavior
Date Tue, 19 Sep 2000 20:57:16 GMT
TagBeginGenerator does compile time conversion from String to the type of
the property as specified in the spec. table 2-4 (section 2.13.2) and more
(looking at the code). But, it doesn't work for property of type
java.lang.Object. So, if I have a tag (say foo) with a property of type
object (say attr1), the following doesn't work:

<a:foo attr1="bar"/>

(fails compilation with "Unable to convert a String to java.lang.Object for
attribute attr1").

If we change it to the following uglyness, it works:

<% String bar = "bar"; %>
<a:foo attr1="<%=bar%>"/>

Questions:

1. Is String to java.lang.Object implicit conversion a spec. oversight or is
there a good reason for not supporting it. Since java.lang.String is
java.lang.Object, it seems strange to say, "Unable to convert String to
java.lang.Object" when String *is* an Object.

2. Regardless of how the spec. feels about it, can Jasper support this as a
non-normative feature? As far as I can see, it is just one (half) a line in
TagBeginGenerator, change "if (c == String.class)" to "if (c == String.class
|| c == Object.class)" in convertString method.

3. Does anyone have a workaround suggestion (other than providing a attr1Str
property that calls setAttr1(): difficult to explain to the tag library
user)?

-arun

Mime
View raw message