Hello,

We recently came upon an issue in migrating our web application from Tomcat 
4.1.x to SAP Web AS 6.4 SP7.

Here is an example of the offending code (which involves indexed beans 
managed by a Struts ActionForm):

<logic:iterate ... indexId="offset">
    Name: <html:text property="<%= "people[" + offset + "].name" %>"/>
</logic:iterate>

The quotes embedded in the property attribute's runtime expression work 
fine under Tomcat, but failed under SAP Web AS during JSP translation.  The 
Web AS JSP compiler sees the quote before the word people as the closing 
delimiter for the property attribute value.

We found that the following variations work in both Tomcat and SAP Web AS.

<html:text property='<%= "people[" + offset + "].name" %>'/>
(using apostrophes instead of quotes to delimit the attribute values)

<html:text property="<%= \"people[\" + offset + \"].name\" %>"/>
(escaping the embedded quotes)

The former solution seems to be sanctioned (according to Google, anyway). 
The latter solution (though looking to be pure evil) seems to solve a 
situation where you would have both quotes and apostrophes in the same 
attribute value.

Is there anything in the (current or previous) JSP specification dealing 
with quotes embedded in runtime expressions?  (It is an unfortunately happy 
coincidence that Jasper supports embedded quotes; anyone else enjoying this 
behaviour should be aware that it may not be supported by other 
containers.)

Thanks for your precious time.




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to