be aware of apache tomcat 6.0.18
On the 31th July 2008, apache-tomcat-6.0.18 was released. The releases notes includes the issue:
The resolution of this issue caused a regression: 4551: EL "empty" keyword does not work. This regression makes unusable applications that uses JSPs with EL Expressions like: ${not(empty(list))}. A workaround is to write the expression as ${not (empty (list))}. This regression is already fixed, and will be available at the next version (6.0.19).
Also, another surprising change was issue 45015: Quoting in attributes that was solved on 6.0.17. The resolution of this issues enforces the JSP 2.0 specification and that makes illegal expressions like:
<mytags:tag value="<%= "hi!" %>" />
The correct sentence would be
<mytags:tag value='<%= "hi!" %>' /> <mytags:tag value="<%= \"hi!\" %>" /> <mytags:tag value='<%= \"name\" %>' /> ...
Luckily, it is easy to detect illegal code, with the regex <\w+:[^>]+="[^<"]*<%=[^%]*"|<\w+:[^>]+='[^>']*<%=[^%]*' on all your jsps. Be sure to fix any illegal expresion if you wish to deploy your applications on tomcat >=6.0.17.