2011-11-25 3 views
3

GenericFacesPortlet을 확장하는 클래스에서 sesssion 범위의 bean을 액세스 할 수 있습니까?GenericFacesPortlet에서 세션 범위 Bean 가져 오기

포틀릿에서 FacesContext을 인식하고 있습니까?


무엇을 달성하고 싶습니까?

serveResource() 방법을 통해 파일을 제공하고 싶습니다. 파일의 내용은 메소드 getResourceContent()을 구현하는 bean에서 검색되어야합니다.

그러나 불행히도 을 호출 할 때 FacesContext.getCurrentInstance()을 호출합니다.


정보 : 버전 2.1.0.FINAL에서 JBoss Portlet Bridge을 사용하고 있습니다.

답변

1

FacesContext는 GenericFacesPortlet에서 항상 null입니다. GenericFacesPortlet은 브릿지를 생성하고 초기화합니다. Bridge는 실제로 FacesContext를 생성하고 JSF 라이프 사이클을 실행합니다. GenericFaces 포틀렛에서 FacesContext가 아직 작성되지 않았습니다 (널 (NULL)).

원하는 것을 얻으려면 세션에서 빈을 가져올 수 있습니다. 당신이 사용해야 할하기 위하여 :

 

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

여기서 "yourBeanName는"당신이 YourBean을 정의 할 때 얼굴-config.xml 파일에 사용되는 이름입니다.

건배!

+0

고맙습니다. 시험해 보겠습니다. –