Динамическая страница включения в страницу HTML - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть диаграмма избранного, при нажатии на элемент в диаграмме я должен добавить страницу в таблицу rich: tab.Диаграмма избранного построена с использованием jQuery, и на каждом событии щелчка листьев я выполняю пользовательский интерфейс: включить с проверкой jstl.Найдите приведенный ниже код.

    <rich:tabPanel>
        <rich:tab label="#{mnOrdrMsgs.mainordr}" immediate="true"
            id="mainorderTab" styleClass="tabPanel">

            <c:if test="${favouritesBean.selectedNaviItem != null}">
                <ui:include src="#{favouritesBean.selectedPage}" />
            </c:if>

            </rich:tab>
        <rich:tab label="#{mnOrdrMsgs.archiv}" immediate="true"
            id="archivTab" styleClass="tabPanel">
        Archive
    </rich:tab>
    </rich:tabPanel>

Проблема в том, что значение favouritesBean.selectedPage всегда равно нулю.Может кто-нибудь, пожалуйста, помогите в этом случае.Я действительно застрял с 2 дней.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Теги JSTL не работают синхронно с тегами JSF, как вы ожидаете от кодирования. Теги JSTL выполняются во время сборки представления JSF, которое создает дерево только с тегами JSF. Теги JSF выполняются во время визуализации представления JSF, в результате чего создается дерево только с элементами HTML.

В этом конкретном случае вы хотите использовать вместо этого тег JSF. Используйте <ui:fragment> или <h:panelGroup>.

<ui:fragment rendered="#{favouritesBean.selectedNaviItem != null}">
    <ui:include src="#{favouritesBean.selectedPage}" />
</ui:fragment>
0 голосов
/ 09 сентября 2011

«Я думаю, что проблема возникла из-за назначения favouritesBean.selectedNaviItem.»

Атрибут bean selectedNaviItem является нулевым для первой фазы рендеринга, поэтому selectedNaviItem не оценивается, и по умолчанию всегда отображается значение selectedPage.

Решение:

Инициализировать компонент с пустой строкой или значением по умолчанию.

...