tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kin-Man Chung <Kin-Man.Ch...@Eng.Sun.COM>
Subject Re: [5] EL parsing eats extra character after '?'
Date Fri, 30 May 2003 19:41:22 GMT

> Date: Fri, 30 May 2003 13:47:01 -0400
> From: Tim Funk <funkman@joedog.org>
> Subject: [5] EL parsing eats extra character after '?'
> To: Tomcat Developers List <tomcat-dev@jakarta.apache.org>
> Cc: edsmithed@yahoo.com
> 
> Attached below is a message from tomcat-user. I don't know it this is a valid 
> issue or not. If its not, it has great FAQ potential.
> 
Argh, this is a bug!  JSP 2.0 now recognizes ${...} as an EL expression,
so there are some special handling for $ in the parser.  It got this
wrong, apparently.

I'll commit a fix to this as soon as I send this mail out.  Note that
the workaound to this problem is to write

	\$<jsp:getProperty name="login" property="username"/>
	
instead.  Here, \$ is an escape for $.  This is new in JSP 2.0.	

Note also that this can now be written as

	\$${login.username}
	
taking advantage of EL in tc 5.

> If it is a problem, could it be caused by the following the snippet below? It 
> looks like any custom tag would be ignored if preceded by a $. This seems to 
> be the behavior I saw when I put $ in front of the hello world tag in 
> /jsp-examples/jsp2/tagfiles/hello.jsp.
> 
> 
> In org.apache.jasper.compiler.Parser.parseXMLTemplateText()
> lines 1502, 1506
>                      if (ch != '{') {
>                          ttext.write('$');
>                          ttext.write(ch);
>                          continue;
>                      }
> 
This would not work, since parseXMLTemplateText deals only with
text in the body of <jsp:text> element.

> 
> I really don't know much about Jasper, and was just snooping.
> 

Well, this is a good time to do that, now that Jasper in TC5 has
stablized.  Ping me if you need help.  :)

-Kin-man

> -Tim
> 
> -------- Original Message --------
> Subject: Tomcat 5.0.2 Bug
> Date: Fri, 30 May 2003 06:36:04 -0700 (PDT)
> From: Ed Smith <edsmithed@yahoo.com>
> Reply-To: Tomcat Users List <tomcat-user@jakarta.apache.org>
> To: tomcat-user@jakarta.apache.org
> 
> I think there is a bug in Tomcat 5.0.2 (at least under
> Windows XP) dealing with placing a $ before (at least
> some) tags.
> 
> Consider the following JSP:
> 
> <jsp:useBean id="login" class="LoginBean"
> scope="session"/>
> <jsp:setProperty name="login" property="username"
> value="foo"/>
> 
> <html>
>    <body>
>      $<jsp:getProperty name="login"
> property="username"/>
>    </body>
> </html>
> 
> In Tomcat 4.1.24, this generates the following HTML
> (as expected)
> 
> <html>
>    <body>
>      $foo
>    </body>
> </html>
> 
> In Tomcat 5.0.2, it generates
> 
> <html>
>    <body>
>      $<jsp:getProperty name="login"
> property="username"/>
>    </body>
> </html>
> 
> ****The jsp taglib does not get processed in
> 5.0.2.****  Note that if I add a space after the $, it
> works in 5.0.2
> 
> Changing to
> 
> $ <jsp:getProperty name="login" property="username"/>
> 
> gets the following HTML
> 
> <html>
>    <body>
>      $ foo
>    </body>
> </html>
> 
> Am I missing something?  I didn’t find the problem in
> either the bugs database or the mailing list archives.
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message