Как получить доступ к карте в JSF - PullRequest
1 голос
/ 29 декабря 2010

Я пытаюсь получить доступ к карте в jsf, используя C: foreach. Но я не могу получить доступ к карте в jsf, используя символ «#». Но я могу получить к ней доступ, используя символ «$». отображается с использованием компонента jsf h: outputtext.Мой пример кода

h:form binding="#{MapInJsf.initForm}">
                <c:forEach items="#{MapInJsf.nameMap}" var="nameMap">
                    <%--<li>${nameMap.key}</li>--%> I cann access it
                    <%--<h:outputText value="#{nameMap}"/>--%>
                    <h:outputText value="Name2 : #{nameMap.key}"/>
                   <h:outputText value="Last Name1 : #{nameMap.value}"/>
                </c:forEach>
            </h:form>

что я делаю не так и как я могу получить к нему доступ? Динамическая привязка значения компонента JSF Пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 29 декабря 2010

Это будет работать только при использовании 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.

Смотри также:

...