According to the Java Beans spec (the spec that the JSP introspection
capabilities are based on), the appropriate setter for a property named
"includedPages" is "setIncludedPages." So, IPlanet is correct and I would
argue that JRun (although seemingly doing you a favor) is out of spec.
Scott
----- Original Message -----
From: "Jim Preston" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, July 20, 2000 12:51 PM
Subject: Capitalization matching of properties and methods
> I've recently discovered an interesting discrepancy between JRun and
> iPlanet
> regarding the use of the jsp:setProperty tag, and I was wondering if
> those
> who have used other JSP engines could comment on how this works in their
> experience.
>
> I have a bean, DataCenter, with a method called "setIncludedPages" (note
> the
> use of standard Java naming convention).
>
> At the top of my JSP, I have the appropriate jsp:useBean tag for that
> bean,
> and then a setProperty tag like this:
>
> <jsp:setProperty name="dataCenter" property="includedpages"/>
>
> Inside of a form whose action references the same JSP, I have something
> like
> this:
>
> <input type="checkbox" name="includedpages" value="1">
>
> Note that both the property name and the input tag name are all
> lowercase,
> which is the convention that I normally follow.
>
> Under JRun, this works fine. On the recursive call to the JSP, it
> correctly
> matches the parameter "includedpages" to the property "includedpages",
> and
> then correctly makes the call to the method "setIncludedPages", even
> though
> the capitalizations don't match.
>
> Under iPlanet, however, that same JSP gets an exception from Jasper that
> says "Can't find method for includedpages".
>
> If I now edit the JSP and change the two tags in question like so
> (capitalizing the "P"):
>
> <jsp:setProperty name="dataCenter" property="includedPages"/>
> . . .
> <input type="checkbox" name="includedPages" value="1">
>
> It works under iPlanet (and, of course, continues to work under JRun).
> One
> might think that iPlanet (or Jasper? I'm not really sure where the
> responsibility for doing the name comparisons lies) is just doing a
> case-sensitive compare, but it's not that simple. Notice that the
> property
> and the input tag still have a lowercase "i", but the method name has an
> uppercase "I".
>
> I looked through the JSP spec, and didn't find anything that addresses
> this
> fine point of how the various names should be compared, and/or who has
> the
> responsibility for doing the compare.
>
> So, has anyone else seen this weirdness? Anyone know anything definitive
> about whether the JRun way or the iPlanet way is supposed to be correct?
>
> --Jim Preston
>
> ========================================================================
> ===
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
> JSP-INTEREST".
> Some relevant FAQs on JSP/Servlets can be found at:
>
> http://java.sun.com/products/jsp/faq.html
> http://www.esperanto.org.nz/jsp/jspfaq.html
> http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
> http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets
>
===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
Some relevant FAQs on JSP/Servlets can be found at:
http://java.sun.com/products/jsp/faq.html
http://www.esperanto.org.nz/jsp/jspfaq.html
http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets