Это будет работать только при использовании JSP 2.1 или новее (Servlet 2.5 или новее). В JSP 2.0 или более ранней версии (Servlet 2.4 или более ранней) невозможно ссылаться на переменную c:forEach
с помощью отложенного EL #{}
. Отложенный EL #{}
изначально был частью JSF 1.0 и только позже был интегрирован в JSP 2.1, примерно во время выпуска JSF 1.2. Однако вы должны быть в состоянии использовать стандарт EL ${}
.
<c:forEach items="${MapInJsf.nameMap}" var="nameMap">
<h:outputText value="Name2 : ${nameMap.key}"/>
<h:outputText value="Last Name1 : ${nameMap.value}"/>
</c:forEach>
Но вы не сможете связать его с UIInput
компонентом, таким как <h:inputText>
, поскольку запись ${}
вызывает только метод получения бина, а не метод set.
Если вы используете контейнер, совместимый с сервлетом 2.5 (например, Tomcat 6.0 и выше), вам необходимо убедиться, что ваш web.xml
объявлен в соответствии с сервлетом 2.5. То есть корневая декларация должна быть следующей:
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="YourWebAppID"
version="2.5">
Только тогда вы сможете использовать отложенный EL #{}
для тегов JSP, таких как JSTL.
Смотри также: