Получить сессионный компонент из GenericFacesPortlet - PullRequest
3 голосов
/ 25 ноября 2011

Можно ли каким-то образом получить доступ к bean-объекту в области sesssion в классе, расширяющем GenericFacesPortlet?

Знает ли даже портлет FacesContext?


Чтоя хочу достичь?

Я хочу обработать файл методом serveResource().Содержимое файла должно быть получено из бина, реализующего метод getResourceContent().

Но, к сожалению, я получаю null при вызове FacesContext.getCurrentInstance().


Для вашей информации: Я использую JBoss Portlet Bridge в версии 2.1.0.FINAL.

1 Ответ

1 голос
/ 25 ноября 2011

FacesContext всегда будет нулевым в GenericFacesPortlet. GenericFacesPortlet создает мост и инициализирует его. Мост фактически создает FacesContext и выполняет жизненный цикл JSF. С вашей точки зрения GenericFacesPortlet FacesContext еще не создан (null).

Чтобы достичь того, чего вы хотите, вы можете взять боб из сеанса. Для этого вы должны использовать:


YourBean yourBean = (YourBean) request.getPortletSession().getAttribute("yourBeanName");

где "yourBeanName" - это имя, которое вы использовали в файле face-config.xml при определении YourBean.

Ура!

...