Вызов метода JSF Managed Bean с использованием параметров URL - PullRequest
2 голосов
/ 29 августа 2011

У меня есть управляемый компонент Session Scoped, который поддерживает мое веб-приложение.В этом веб-приложении я хотел бы, чтобы у пользователя была возможность выполнить URL-адрес, содержащий идентификатор пользователя и дату.Затем это вызовет метод в управляемом bean-компоненте и переключит веб-приложение к этому идентификатору пользователя и дате.

Простой ответ - поместить код для извлечения параметров из URL-адреса в конструктор объекта.управляемый боб.Но проблема заключается в том, что это Session Scoped, поэтому конструктор вызывается только при начальной загрузке.Если пользователь открывает веб-приложение и манипулирует им, а затем выполняет URL-адрес с новыми параметрами, конструктор не может быть вызван.

Есть ли способ, которым я могу выполнить метод на управляемомBean каждый раз, когда выполняется URL-адрес приложения (каждый раз, когда страница загружается), независимо от состояния сеанса?

1 Ответ

2 голосов
/ 29 августа 2011

Это возможно, взломав работу в геттер, который вызывается представлением, но нет, вы действительно не хотите его иметь. Bean-объект сессионной области совместно используется всеми окнами / вкладками браузера в пределах одного сеанса. Каждое изменение в окне / вкладке будет влиять на все другие окна / вкладки. Это может привести к "WTF?" опыт, который, таким образом, плохо для общего UX (пользовательский опыт) вашего сайта.

Вам действительно нужно поместить этот компонент в область запроса, если вы хотите перехватывать запросы GET, или если вы используете JSF 2.0, область просмотра, если вы хотите сохранить состояние в последующих запросах POST после начального GET запрос. Bean-объект сессионной области предназначен для хранения данных сферной области, таких как зарегистрированный пользователь, его предпочтения и так далее. Он не предназначен для данных в области запроса, таких как параметры запроса и т. П.

...