JSF 2 AJAX - перезагрузить весь div (например, <ui: include src = "toReloadData.xhtml" />) - PullRequest
4 голосов
/ 29 декабря 2010

Я работаю с jsf2 и хочу использовать его функциональность ajax.Проблема: я уже видел некоторые обновления ajax.Но нечего обновлять целый div ...

У меня есть страница xhtml с данными из моего бина, и я не хочу обновлять все ее поля, было бы проще обновить весь пользовательский интерфейс: include ...

кто-нибудь знает решение?Или мне нужно обновить все поля вручную?

С наилучшими пожеланиями

Ответы [ 2 ]

10 голосов
/ 29 декабря 2010

Просто поместите их в некоторый компонент контейнера с идентификатором и используйте его в атрибуте render f:ajax.

<h:form>
    <h:commandButton value="submit" action="#{bean.submit}">
        <f:ajax render=":foo" />
    </h:commandButton>
</h:form>
<h:panelGroup id="foo" layout="block">
    <ui:include src="include.xhtml" />
</h:panelGroup>

Обратите внимание, что <h:panelGroup layout="block"> отображает <div>. Если вы пропустите атрибут layout, он по умолчанию будет <span> (только когда есть какие-либо атрибуты, которые должны быть отображены в HTML, например id).

1 голос
/ 30 декабря 2010

Хорошо, BalusC, но у меня все еще проблема с включениями и ajax. мой index.xhtml включает в себя search.xhtml и results.xhtml ajax-часть находится в search.xhtml, а toRender-id - в results.xhtml ... поэтому при рендеринге jsf-тэгов есть проблема, что на данный момент нет toRender-Id ...

EDIT: Хорошо, проблема заключалась не в расположении включений, а в том, что ajax-части должны быть в одной и той же форме:

<h:form>
  <div id="search" class="search">
    <ui:insert name="search" >
    <ui:include src="search.xhtml" />
    </ui:insert>
  </div>

  <h:panelGroup id="ajaxResult" layout="block"> 
      <ui:insert name="searchResults" >
      <ui:include src="searchResults.xhtml" />
      </ui:insert>
  </h:panelGroup>
</h:form>

поиск содержит тег f: ajax, ajaxResult is toRenderId С наилучшими пожеланиями, Эмре

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