Компонент области сеанса - как обрабатывать многопользовательские данные

Ну, я создал веб-приложение, используя JSF 2.0. Везде я использовал компонент области сеанса, и из-за этого я сталкиваюсь с проблемой. :( Я объясню на примере ниже.

У меня есть список пользователей в dataTable. Когда я нажимаю на пользователя, я вижу детали этого пользователя. Теперь, когда я щелкаю правой кнопкой мыши пользователя А и нажимаю Open in new tab, я вижу сведения о пользователе А на новой вкладке.

Теперь, когда я щелкаю правой кнопкой мыши пользователя B и нажимаю «Открыть в новой вкладке», я вижу сведения о пользователе B.

Однако, когда я перехожу на вкладку (где есть сведения о пользователе А) и обновляю эту страницу, я вижу сведения о пользователе Б.

Как это преодолеть, чтобы при обновлении страницы я по-прежнему видел сведения о пользователе А, а не о пользователе Б.


person Fahim Parkar    schedule 26.11.2012    source источник
comment
То, что вы сделали, это очень классический антипаттерн ;) Именно это и вдохновило на просмотр и обсуждение.   -  person Mike Braun    schedule 26.11.2012


Ответы (1)


Вместо этого поместите bean-компонент в область просмотра.

При открытии страницы сведений вы должны отправить запрос GET, а не запрос POST. Используйте обычный <h:link>, который передает идентификатор пользователя в качестве параметра запроса с помощью <f:param> и имеет преобразователь в целевом представлении, чтобы преобразовать его в правильное значение модели.

Область сеанса следует использовать только для данных области сеанса, таких как вошедший в систему пользователь и его настройки.

Смотрите также:

person BalusC    schedule 26.11.2012