Why can I not use attributes "lang" and "maxRows" in a custom tag

2002-11-19 Thread Jim Cobban
Tomcat 4.1.12 does not accept a custom tag with attributes "lang" or "maxRows".  When 
I asked about this on the Tomcat users list I was informed that it also does not 
accept the attribute "class".

Specifically if I define those attributes then when the jsp is compiled I get an 
"unable to find setter" error.  If I replace them with similar but meaningless 
attribute names the page compiles correctly.

I have searched the JSP 1.2 and Tomcat 4 documentation exhaustively and I cannot find 
any indication that these attributes are not allowed.  The names I want are the ones I 
feel will be most intuitive to my users. The "lang" keyword is to be used to specify 
the natural language of the interface and the "maxRows" attribute is to be used to 
specify the maximum number of rows from a database query which are to be displayed.

I really want to use these attribute names.  If there is a list of forbidden attribute 
names this should be documented somewhere.

Jim Cobban   [EMAIL PROTECTED]
34 Palomino Dr.
Kanata, ON, CANADA
K2M 1M1
+1-613-592-9438



Re: Why can I not use attributes "lang" and "maxRows" in a custom tag

2002-11-23 Thread Jim Cobban
- Original Message -
From: "Jan Luehe" <[EMAIL PROTECTED]>
Subject: Re: Why can I not use attributes "lang" and "maxRows" in a custom
tag


> > Tomcat 4.1.12 does not accept a custom tag with attributes "lang"
> > or "maxRows".  When I asked about this on the Tomcat users list I was
> > informed that it also does not accept the attribute "class".
> >
> > Specifically if I define those attributes then when the jsp is compiled
I
> > get an "unable to find setter" error.  If I replace them with similar
but
> > meaningless attribute names the page compiles correctly.
>
> This can't be true. For example, JSTL defines an attribute
> named 'maxRows' for its  action.
> I am not aware of any naming restrictions for custom tag attributes.
>
> Are you sure the tag handler for your custom action
> defines an approriate setter method for the attributes in
> question?

I kept experimenting and found exactly what it was that Tomcat disliked
about my attribute.  It was not the name.  It was not the presence or
absence of the set method.  It was that there was also a get method which
did not return String!  Since Tomcat does not use the get method I do not
understand why it cares whether or not one is present or what its signature
is.  But as soon as I change the name of the get method so it did not match
the set method Tomcat merrily accepted the tag.

For me this is now an issue of documentation.  I have searched the JSP 1.2
spec using every term I can think of and I cannot find where it specifies
the characteristics of the set method for an attribute on a custom tag.  I
have therefore been depending upon the description of this capability in
Marty Hall's book.  If the JSP specification, and Tomcat, have a legitimate
reason for looking at the characteristics of the get method when deciding
whether or not to use the set method, then that should be documented.
Otherwise the behavior is frankly mysterious.

Thank you for responding.  When a week went by without a response I
unsubscribed from the list, so the CC on this message may be discarded.


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: Why can I not use attributes "lang" and "maxRows" in a custom tag

2002-11-23 Thread Jim Cobban
- Original Message -
From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
Subject: Re: Why can I not use attributes "lang" and "maxRows" in a custom
tag


>
> Tomcat cares because JSP custom tags are required to implement the
> standard JavaBean naming patterns for property-related methods, as defined
> in the JavaBeans Specification.
>
>   http://java.sun.com/products/javabeans/
>
> >
> > For me this is now an issue of documentation.  I have searched the JSP
1.2
> > spec using every term I can think of and I cannot find where it
specifies
> > the characteristics of the set method for an attribute on a custom tag.
I
> > have therefore been depending upon the description of this capability in
> > Marty Hall's book.  If the JSP specification, and Tomcat, have a
legitimate
> > reason for looking at the characteristics of the get method when
deciding
> > whether or not to use the set method, then that should be documented.
> > Otherwise the behavior is frankly mysterious.
>
> In the JSP 1.2 spec, section JSP.10.1:
>
> "A tag handler has some properties that are exposed to
> the page as attributes on an action; these properties
> are managed by the JSP container (via generated code).
> The setter methods used to set the properties are discovered
> using the JavaBeans introspector machinery."
>
> The last sentence refers to the java.beans.Introspector class, which
> refers you to the JavaBeans spec.

Thank you for the pointers.  I appreciate that exploiting the existing
support for Beans is the obvious way for Tomcat to acquire this information
about the class, even if Tomcat never uses the get method.  I merely hope
that the documentation can be improved to be a little less obscure so that
other programmers like myself, who do not have the time to become intimately
familar with all aspects of Java technology, can be brought up to speed with
less wasted effort.


--
To unsubscribe, e-mail:   
For additional commands, e-mail: