Доступ к компоненту JSF из класса, который не является ни сервлетом, ни компонентом - PullRequest
0 голосов
/ 29 марта 2012

У меня есть бин области действия сеанса JSF, и я храню информацию о текущем пользователе (вошедшем в систему) в этом бине.У меня также есть класс, который не является ни сервлетом, ни бином, это просто класс.Я хочу получить доступ к бину jsf и получить информацию о текущем пользователе в классе.Я нашел решение для сервлета для доступа к JSF bean, но я не смог найти решение для этой проблемы.Есть ли способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 30 марта 2012

Если экземпляр упомянутого класса работает в том же потоке, что и поток HTTP-запроса, который вызвал FacesServlet, тогда вы можете просто получить его по FacesContext, а затем Application#evaluateExpressionGet(). См. Также Получение управляемого компонента JSF по имени в любом классе, связанном с сервлетом

Если экземпляр упомянутого класса выполняется в другом потоке, то вам необходимо заранее передать нужную информацию в конструктор, метод класса или сохранить нужную информацию в каком-то общем источнике данных, который одновременно является веб-приложением JSF и автономный класс имеет доступ, например, к базе данных, файлу локальной файловой системы диска или контексту JNDI. В зависимости от контекста и среды, CDI @Named + @Inject также может быть решением.

«Наилучший путь» зависит от конкретного функционального требования, которое не ясно из вопроса, поэтому я не могу указать правильный путь и привести примеры для начала.

...