Переменные, не отображающие значения в окне

#jsf #primefaces

#jsf #первичные

Вопрос:

У меня есть программа, которая удаляет некоторые поля объекта, и значения этого объекта должны отображаться в модальном диалоговом окне.

При отладке программы я вижу, что объекты заполняются правильно, все значения присутствуют.

Сразу после определения этих значений я показываю диалоговое окно из своего компонента, но значения не отображаются.

Вот как я определяю свое диалоговое окно.

  <p:dialog id="infoDialogReset"
          class="dialogWindowGenericMessage"
          showHeader="false"
          widgetVar="infoDialogResetResolve" modal="true" showEffect="fade" hideEffect="fade" resizable="false" appendTo="@(body)" closable="false">

        <p:panel id="infoDialogResetPanel" class="dialogText18Blue" header="RESET   RESOLVE CHANNEL" style="">

            <p:outputLabel >reset status ->#{channelManagement.selectedChannel.resetStatus}</p:outputLabel>

            </f:facet>
        </p:panel>
</p:dialog>
  

Это фрагмент кода, в котором я передаю значения в значения переменных.

 this.selectedChannel.setResetStatus(0);

RequestContext.getCurrentInstance().update(":j_idt3:mainForm:infoDialogReset");
context.execute("PF('infoDialogResetResolve').show();");
  

В результате диалоговые окна отображаются так, как ожидалось, но значение для объекта channelManagement.selectedChannel.resetStatus не отображается.

Есть идеи, что я делаю не так?

Комментарии:

1. Я сомневаюсь, что идентификатор клиента, который вы обновляете, правильный, поскольку вы appendTo=»@(body)»

2. Компонент @ViewScoped?

3. Привет, Жакен, я согласен, что это может быть проблемой, но если я удалю @ (body) из диалогового окна, оно откроется «серым» и недоступным для просмотра. Затем я попытался использовать родительский идентификатор, но также не работает.

4. Привет, Михал, правильно, это компонент с областью просмотра. Вы рассматриваете это как возможную проблему?

Ответ №1:

Я изменил свой подход.

Вместо вызова моего модального диалогового окна из back bean я вызвал непосредственно со страницы .xhtml.

Просто для справки, если кто-то сталкивается с такой же проблемой. Именно так я выполняю вызов.

 <p:commandButton ajax="true" class="buttonCommmandBlue" value="RESET" oncomplete="PF('dialogResetResolve').show()" update=":j_idt3:mainForm:panelResetResolve" action="#{channelManagement.resetChannel(channelManagement.selectedChannel.name)}">