JSF 2 - Ajax - форма не полностью обработана - PullRequest
2 голосов
/ 17 февраля 2011

Мои коды Ajax для рендеринга формы с использованием недавно выбранной локали:

<h:selectOneMenu id="selectLang" immediate="true" value="#{langListing.language}">
   <f:ajax listener="#{langListing.changeLocale}" render="@form" />
   <f:selectItems value="#{langListing.languages}" />
</h:selectOneMenu>

Однако, поскольку приведенные выше коды в заголовочном файле header.xhtml, вышеуказанные коды отображают только содержимоеheader.xhtml, когда я переключаю языковые стандарты между английским и французским.Моя структура index.xhtml выглядит следующим образом:

header.xhtml
menu.xhtml
body content with an id of "contentSection"
footer.xhtml

Как я могу отобразить menu.xhtml, раздел body и footer.xhtml одновременно с отображением header.xhtml?

1 Ответ

3 голосов
/ 17 февраля 2011

@form влияет только на содержимое родительского <h:form>.Вместо этого используйте @all.

<f:ajax listener="#{langListing.changeLocale}" render="@all" />

См. Также описание атрибута render в документации по тегам <f:ajax> .

Однако, поскольку изменяется языковой стандартВ любом случае влияет на всю страницу, вы также можете использовать синхронный запрос вместо аяксического.Для этого удалите тег <f:ajax>, добавьте onchange="submit()" в раскрывающийся список и переместите код внутри changeLocale() в метод setLanguage().См. Также этот ответ для конкретного примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...