Видимость JSF в обновлении ICEFaces Push - странное поведение - PullRequest
0 голосов
/ 13 октября 2011

У меня проблема с условным рендерингом компонентов JSF, обновленных с помощью ICEFaces Push.

Вариант использования: я перебираю изображения в каталоге, а на новом изображении я вызываю ICEFaces Push Renderer, чтобы на странице xhtml было обновленное изображение и его информация. Изображение отображается на одной панели, а его информация - на другой. Информация не всегда доступна, и когда ее нет, я хочу показать логотип команды вместо информационной панели. Это код xhtml:

<ice:graphicImage height="1024" width="768" value="#{viewBean.image}"></ice:graphicImage>
    <h:panelGrid border="0" columns="1">
        <c:choose>
            <c:when test="${viewBean.infoAccessible}">
                <h:panelGrid border="0" columns="2">


                    <h:outputText value="Data:"></h:outputText>
                    <h:outputText value="#{viewBean.info.time}"></h:outputText>

                </h:panelGrid>
            </c:when>

Приведенный выше код вместе с серверными кодами работает как задумано, но есть странный побочный эффект, которого я не понимаю. Должен быть один вызов viewBean.image, но он увеличивается ... так что при запуске приложения - я получаю до 70+ вызовов этого метода, что не происходит, когда я удаляю проверку состояния viewBean.infoAccessible.

... Я могу также предоставить исходные тексты на стороне сервера, но нет прямой взаимосвязи между viewBean.image и vievBean.infoAccessible (также некоторые другие ppl взглянули на мои коды). Итак, в чем здесь проблема? Чего мне не хватает?

Есть ли другой способ скрыть / показать компоненты JSF в принудительном обновлении ICEFaces?

1 Ответ

0 голосов
/ 19 октября 2011

Я использую атрибут visible="#{mybean.visible}" для управления видимость моих компонентов ICEfaces из моих управляемых Java-бинов.

Я не удивлен, что вы получаете странные результаты смешивание <c:choose> и ICEpush, потому что это делает его трудно для ICEfaces / ICEpush определить, что изменилось на страница и должна быть передана клиенту.

Можете ли вы использовать атрибут visible и управляемые бины включить / выключить компоненты без <c:choose>? Тогда вся логика для отображения страницы в управляемых компонентах а не на страницах JSF.

...