tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <craig...@apache.org>
Subject Re: DO NOT REPLY [Bug 4339] - Cannot use "//" comments in JSP code
Date Mon, 22 Oct 2001 19:13:23 GMT


On Mon, 22 Oct 2001, Paul Speed wrote:

> Date: Mon, 22 Oct 2001 13:48:08 -0400
> From: Paul Speed <pspeed@progeeks.com>
> Reply-To: tomcat-dev@jakarta.apache.org
> To: tomcat-dev@jakarta.apache.org
> Subject: Re: DO NOT REPLY [Bug 4339]  - Cannot use "//" comments in JSP
>     code
>
> Only partially related to the bug, so I'm replying directly instead
> of through bugzilla...
>
> Does this mean that JSP uses a different Java language specification?
> If so, where can I find this separate specification?  Are there any
> other big things like this that are incompatible with normal Java
> syntax?
>

The JSP specification does not mandate the use of Java as a scripting
language -- you can use any language you want (as specified by the
"language" attribute of the <%@ page %> directive).  However, many of the
features related to scripting are defined *only* for Java.

Note also that Jasper (the JSP page compiler in Tomcat) only supports Java
as a scripting language at the moment.

However, more germane to this bug report:

* Scriptlets are required to be well-formed according to the
  rules of the scripting language in use (JSP 1.2, Section 2.11.2).
  Thus, if you mistakenly leave off a semicolon at the end of a
  Java statement in a scriptlet, the compilation error you get is
  your fault.  It's also your fault if the scope of your language
  element extends outside the closing "%>" delimiter in a manner
  that causes invalid code to be created (such as mismatching "}"
  brackets), or the case described in the following point.

* Scriptlets are translated into the generated code according
  to the following rule (JSP 1.2, Section 6.4.2):

    <% scriptlet %>     -->        scriptlet

  In other words, no newline is added after the "%>" by the page
  compiler (though the developer could certainly put a newline there).

When you do something like this:

  <% System.out.println(); // Hello %> Some template text

then this gets translated into

  System.out.println();  // Hello Some template text

and you get what you pay for.  If you want to use // comments, do this
instead:

  <% System.out.println(); // Hello
  %> Some template text

and it will work fine.

> Thanks,
> -Paul Speed
>

Craig


> bugzilla@apache.org wrote:
> >
> > DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
> > RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
> > <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4339>.
> > ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
> > INSERTED IN THE BUG DATABASE.
> >
> > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4339
> >
> > Cannot use "//" comments in JSP code
> >
> > craig.mcclanahan@sun.com changed:
> >
> >            What    |Removed                     |Added
> > ----------------------------------------------------------------------------
> >              Status|NEW                         |RESOLVED
> >          Resolution|                            |WONTFIX
> >
> > ------- Additional Comments From craig.mcclanahan@sun.com  2001-10-22 10:11 -------
> > You should not be using "//" comments.  You have absolutely no control over the
> > Java code that is generated for your page, so it is your responsibility to use
> > well-formed constructs.  In this particular case, that means to use /* */ style
> > comment markers so that you can explicitly close them.  Even if we changed
> > Tomcat to do what you suggest, depending on this would not be portable and you'd
> > have massive problems as soon as you tried to switch to some other container
> > that didn't do it.
> >
> > Using scriptlets at all can lead you into lots of other problems (such as
> > intermixing business logic and presentation logic that makes it very hard to
> > maintain and enhance your applications), but that is a whole separate
> > discussion.
>


Mime
View raw message