Hmm... You are correct that this is the behavior described by the real spec. Even though the JSP reference card on Sun's website clearly state a different behavior.
http://java.sun.com/products/jsp/syntax/2.0/syntaxref2027.html#8865 I guest we can only blame the reference card. :-) On Tue, Jun 17, 2008 at 1:29 PM, Scott Ferguson <[EMAIL PROTECTED]> wrote: > > On Jun 17, 2008, at 12:42 PM, Hacking Bear wrote: > > See in the discussion link > > > You need to address the section I quoted from the spec. It is extremely > clear: > > > 5. If the object is not found in the specified scope and neither class > nor beanName are > > give, a java.lang.InstantiationException shall occur. This completes > the processing of this > > jsp:useBean action. > > There is zero ambiguity in that rule. > > > >>>> > > However, you may be right that the tag lib spec allows the use of type > attribute only. In > http://java.sun.com/products/jsp/tags/11/syntaxref11.fm14.html , it first > says "If the Bean does not exist, <jsp:useBean> instantiates it from a class > or serialized template." and then on the attribute description: > > > That page is not part of the spec. Also, it appears to be for JSP 1.1. > > >>>> > > Here are some relevant snippets from the JSP 2.1 spec. However, as far as I > know the sections haven't changed for either 2.0 or 2.1 versions: > *(section JSP 5.1, <jsp:useBean>)* > > It is also possible to use this action to give a local name to an object > defined elsewhere, as in another JSP page or in a servlet. This can be done > by using the type attribute and not providing class or beanName attributes. > > You're quoting from non-normative explanatory/example text. The language > is looser. The "Semantics" section is the precisely defined, normative > section of the spec. > > In the final example, the object should have been present in the session. > If so, it is given the local name wombat with WombatType. A > ClassCastException may be raised if the object is of the wrong class, and an > InstantiationException may be raised if the object is not defined. > > > That doesn't contradict rule #5 at all. It says an InstantiationException > will be raised if the object isn't defined. (And since it's from > explanatory text, the language is looser than the language in the Semantics > section, i.e. the correct word is "shall", not "may".) > > > > <jsp:useBean id="wombat" type="my.WombatType" scope="session"/> > > <<<< > And for all practical purposes, useBean should allow setting the variable > to null because many classes are "bean-like" and not strict JavaBean and it > is also harder to tell if it is an valid bean or an "empty" bean. > > > "Should" has nothing to do with specifications. There is only "does" and > "does not". There is no "should". (Well, ignoring optional, but highly > recommended sections of a spec, which doesn't apply in this case.) > > -- Scott > > > > > On Tue, Jun 17, 2008 at 12:09 PM, Scott Ferguson <[EMAIL PROTECTED]> wrote: > >> >> On Jun 17, 2008, at 11:51 AM, Hacking Bear wrote: >> >> Hi, >> >> As we are discussing some other issues, we found a potential serious >> problem with jsp:useBean. Basically, if useBean only has the type parameter >> but not the class/bean parameters, the resin server will fail because it >> does not know what to instantiate, contrary to the spec. >> >> <!-- should set foo to null but fail instead. --> >> <jsp:useBean id="foo" type="java.lang.String" scope="request"/> >> >> >> How is that contrary to the spec? >> >> JSP.5.1 >> >> > 5. If the object is not found in the specified scope and neither class >> or beanName >> > are given, a java.lang.InstantiationException shall occur. This >> completes the >> > processing of thisjsp:useBean action. >> >> -- Scott >> >> >> >> For the full discussion of the bug and the JSP spec, see >> http://www.jetbrains.net/jira/browse/IDEA-18405 >> >> The strange thing is that Tomcat behaves the same. So I wonder if this is >> a bug or a legacy problem for the servers due to confusing descriptions in >> earlier JSP spec? >> >> Please enlighten me! >> >> Thanks >> _______________________________________________ >> resin-interest mailing list >> resin-interest@caucho.com >> http://maillist.caucho.com/mailman/listinfo/resin-interest >> >> >> >> _______________________________________________ >> resin-interest mailing list >> resin-interest@caucho.com >> http://maillist.caucho.com/mailman/listinfo/resin-interest >> >> > _______________________________________________ > resin-interest mailing list > resin-interest@caucho.com > http://maillist.caucho.com/mailman/listinfo/resin-interest > > > > _______________________________________________ > resin-interest mailing list > resin-interest@caucho.com > http://maillist.caucho.com/mailman/listinfo/resin-interest > >
_______________________________________________ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest