Created attachment 23417 [details] modified foreach.jsp file that reads properties file There is issue with ResourceBundle using JSTL in tomcat 6. The problem is in using the following code ${messageString.resourceBundle.keys} The above code is not able to resolve the keys and result in printing of ???keys??? Here messageString is a variable set using below code <fmt:setBundle basename="LocalStrings" scope="session" var="messageString" /> I have tested it with example jsp provided in the tomcat's example webapp. The issue is reproducible with both JSTL1.1 and JSTL 1.2 and JDK 1.5 and 1.6 However it is working fine in Tomcat 5.5 Attached is the sample foreach.jsp with modified code to read a property file available in \webapps\examples\WEB-INF\classes folder under tomcat installation directory. Just place this file in examples webapp and view source
This has been fixed in trunk and proposed for 6.0.x
This has been fixed in 6.0.x and will be in 6.0.20 onwards.
This bug should have been resolved as INVALID since the behaviour complained about is required by the EL specification. There is no way to avoid this in Tomcat 6 but in Tomcat 7 onwards ${messageString.resourceBundle.getKeys()} can be used. The regression was reported as bug 53001.
Confirming as INVALID. To find the place in specification, search for the string of "???". -> it is in description of ResourceBundleELResolver.getValue(..) method. 5.5.x might be different, because javax.el package and ResourceBundleELResolver were introduced with JSP 2.1. Just noting that JSTL has similar feature in its i18n tags - see fmt:message.