Обновление страницы ICEFaces - PullRequest
0 голосов
/ 06 октября 2009

У меня есть страница, где пользователь вводит данные и нажимает кнопку «Сохранить». Данные сохраняются в БД, и я хочу, чтобы страница обновлялась, чтобы отразить новые данные в БД. Я использую управляемый компонент, как мне заставить страницу обновляться самостоятельно?

Ответы [ 3 ]

3 голосов
/ 13 октября 2009

На мой взгляд, есть два варианта:

  1. Использовать правила навигации JSF
  2. Использовать отображаемые атрибуты

объявление 1)

Определите страницу, к которой вы будете переходить после нажатия кнопки «Сохранить». Для этого ваше действие по фактическому сохранению данных в БД перейдет к методу, определенному как actionListener или, если вы хотите, чтобы ваша следующая страница зависела от результата процесса сохранения, как action.

Правила навигации будут определены в face-config.xml Если ни одно из правил навигации не соответствует заданному действию, текущая страница будет отображаться повторно (хотя из опыта, который я сделал, обновление отличается от обычного обновления HTML).

объявление 2)

Если у вас есть несколько списков или таблица данных на той же странице, на которой установлена ​​модель в вашем компоненте, изменения будут автоматически отображаться , за исключением , если вы используете ключевое слово immediate, для которого установлено значение true на Ваша кнопка сохранения.

Кроме того, вы можете рассмотреть панель с содержимым по вашему выбору, у которого для свойства rendered установлено значение логического значения в вашем bean-компоненте, которое будет запускаться в процессе сохранения и поэтому позволяет отображать содержимое только после нажатия * 1031. * сохранение .

1 голос
/ 28 октября 2009

Вы можете использовать функцию Push AJAX IceFaces. Это инициализирует повторную визуализацию клиента.

Рекомендованным (и самым простым) способом является использование API SessionRender в вашем управляемом компоненте:

SessionRenderer.addCurrentSession("myGroup");
SessionRenderer.render("myGroup");

Обратитесь к руководству разработчика Icefaces за дополнительной информацией.

0 голосов
/ 05 ноября 2009

Зависит от того, как вы это делаете.

Когда вы нажимаете кнопку, жизненный цикл JSF запускается, если вы запускаете сохранение в базу данных в рамках действия кнопки, все значения, которые вы обновляете в своем управляющем компоненте, должны автоматически отражаться на странице. Жизненный цикл JSF делает это для вас автоматически, а Icefaces может сделать это с помощью моста AJAX, поэтому вам не потребуется выполнять перезагрузку страницы.

Если вы выполняете работу асинхронно, вам нужно использовать предоставляемые Push API Icefaces. Чтобы начать жизненный цикл с конца сервера.

...