Как обновить элемент вне формы с помощью h: command ajax в jsf2? - PullRequest
4 голосов
/ 18 ноября 2011

Как обновить элемент вне формы с помощью рендеринга ajax.

<ui:repeat var="o">
    <h:form>
        <h:panelGroup id="someid">
       ...
        </h:panelGroup>

        <div>
            <h:commandButton action="#{o.doSomething}">
                <f:ajax event="action" render="someid :rehreshthistoo" />
            </h:commandButton>
        </div>
    <h:form>
</ui:repeat>

 <h:panelGroup id="rehreshthistoo">
       ...
 </h:panelGroup>

1 Ответ

6 голосов
/ 18 ноября 2011

Ваш код выглядит нормально.Хотя будет работать только , если <h:panelGroup id="rehreshthistoo"> сам по себе не существует в другом UINamingContainer компоненте, а также если вы не изменили разделитель контейнера именования JSF по умолчанию : к чему-то другому, например _ или -.

Окончательный ответ должен быть найден в исходном коде HTML, созданном JSF.Откройте страницу в браузере, щелкните правой кнопкой мыши и Просмотр источника , найдите там сгенерированный элемент <span> <h:panelGroup id="rehreshthistoo"> и затем используйте точно его идентификатор в вашем <f:ajax render> с разделителем именующего контейнера в качестве префикса.Если он содержит автоматически сгенерированный идентификатор какого-либо UINamingContainer родителя, то вам следует также дать этому родительскому компоненту фиксированный идентификатор.

См. Также:

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