2009-02-03 4 views
3

У нас есть следующая проблема ...JSF область сеанса фасоль с вкладками просмотра

среда приложения:

JSF, RichFaces, a4j

Рассмотреть следующий сценарий:

  • Пользователь залогинился в системе
  • Пользователь переходит на новую страницу, состоящую из формы a4j, содержащей компоненты a4j, пользователь заполняется в форму, но не отправляет ее.
  • Пользователь открывает новую вкладку и открывает тот же URL и заполнить новую форму с новыми данными
  • пользователя возвращается к своей первой вкладке и представляет информацию (Примечание: Все бобы определены в сессии сфера)

Результат:

Представленная информация является информацией из второго Tab, но представленный с первой вкладке, которая, как ожидается, до тех пор, как бобы определяется как область сеанса.

Проблема:

Нам нужно, чтобы получить поведение объема запроса (то есть: работа с новой вкладкой как новый запрос, хотя боб определяются как область сеанса).

Примечание:

При определении объема фасоли в качестве рамки запроса частичного ответа Ajax от отдельных компонентов в той же форме, сбрасывает другие компоненты, так как они еще не представили.

Любые предложения?

-

Большое спасибо

ответ

2

Это хорошо известная проблема для веб-приложений.

Конечно, вы можете попытаться решить эту проблему, используя более настраиваемый код , но мое быстрое предложение - использовать seam framework, который решает именно это.

Seam - это надмножество JSF и представляет новый conversation scope для фасолей , который делает именно то, что вы хотите.

Шов поддерживает богатые интерфейсы (оба проекта JBoss/Redhat), поэтому вы не должны ожидать никаких проблем с интеграцией.

0

В чем причина того, что bean должен находиться в области сеанса?

Если это только для получения функции ajax, вы можете изменить компонент для запроса и использовать тег a4j:keepAlive.

a4j: keepAlive расширяет живой цикл для компонента области запроса, ваш экземпляр компонента затем действует так, как будто он находится в области сеанса для запросов ajax. Когда пользователь открывает две одинаковые страницы, они используют два разных экземпляра компонента.

Смежные вопросы