четверг, 20 декабря 2007 г.

Обновление данных на странице

При использовании ADF, доступ к ViewObject-ам (см ADV BC) из ADF Faces страниц осуществляется через итераторы (<itarator>) binding контейнеров соответствующих страниц, которые описываются в pageDef файлах. Тег <itarator> имеет очень важный атрибут Refresh который позволяет указать в каких случаях необходимо обновлять данные:
  • always - при каждом запросе binding контейнера (при рендеринге страницы, при сабмите страницы или когда приложение отсылает ответ на страницу)
  • deferred - отложенное. Обновляется только если этого требует другой (связанный с нашим) binding объект
  • ifNeeded - (по умолчанию) обновляет даные при необходимости. Если например выводятся на страницу дочерняя и родительская таблица, то родитель будет обновлен два раза (один - при обновлении дочернего итератора, другой - при обновлении своего). ifNeeded - позволяет этого избежать.
  • never - используется для того чтоб отключить обновление средствами ADF, при этом приложение должно само обновлять данные.
  • prepareModel - используется если обновление требуется только при подготовке binding контейера страницы
  • prepareModelIfNeeded - при подготовке контейнера и только если необходимо
  • renderModel - обновлять при рендеринге страницы
  • renderModelIfNeeded - обновлять при рендеринге страницы и только если необхлдимо
Для дополнительных условий можно использовать атрибут RefreshCondition - он позволяет задать EL выражение определяющее когда обновлять данные. Например: ${!bindings.findAllServiceRequestIter.findMode} обновление будет определятся значением атрибута findMode

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