2013-09-25 2 views
0

여러 SessionScoping Backing Bean으로 JSF-2 포틀릿을 만들고 싶습니다. 나는 또한 그들 모두가 Object Pool 역할을하는 공통 SessionScoped Bean으로 POJO를 공유하기를 바란다. 나는 백업 콩의 전에 초기화이 콩을 가지고 싶습니다JSF-2로 ObjectPool Bean 설정

  1. :

    나는 나를 괴롭히는 두 가지 문제가 있습니다. xhtml 페이지는 객체를 Object Pool Bean에 직접 호출하지 않으므로 적어도 하나의 Backing Bean은 ObjectPool보다 먼저 init이됩니다. 다른 모든 Backing Bean의 PostConstruct를 호출하는 것을 제외하고는 먼저 init이 될지 확인하는 방법이 있습니까?

  2. 일부 Client/BackingBean 기능을 호출하기 위해 Backing Bean이 필요한 동안 모든 Backing Bean이 Object Pool의 등록 정보를 호출해야하기 때문에 ManagedProperties 사용에 혼란 스럽습니다. 이중 참조를 만들지 않고 어떻게 할 수 있습니까? 첫 번째 질문에 대한

답변

1
  • 당신 use 할 수 로그인 XHTML 페이지에서 f:prerenderView. @SessionScoped 콩은 페이지에서 을 참조하거나 직접 작성하여 에 저장할 때까지 생성되지 않습니다. f:prerenderView을 풀처럼 작동하는 빈의 메서드 중 일부에 연결하면 HttpSession의 나머지 부분에 대해 초기화됩니다. 나중에 다른 @SessionScoped 빈에 @ManagedProperty 주석을 사용하여 삽입 할 수 있습니다.

  • 두 번째 질문에 대해서는 세션 속성을 얻기 위해보기 빈을 통해 으로 이동하지 않아도된다는 것을 기억하십시오. 객체 풀 자체를 @ManagedBean으로 만들지 않았습니까? 그렇다면 페이지에서 바로 !

+0

prerenderedView에 대한 조언 주셔서 감사합니다. 두 번째 질문에 대해서는 네, ObjectPool 너무 SessionScoped ManagedBean이지만, 내가 말했듯이, 나는 xhtml 페이지에서 그것을 가리 키지 않을거야. 그러나 그것이 유일한 방법 일 경우 실제로 할 수도 있습니다. – yannicuLar

+0

뷰 범위 Bean을 통해 ObjectPool에 액세스하는 것은 해당 뷰 bean이 표시하려는 내용을 수정하기 위해 일부 논리 코드를 실행하는 경우에만 의미가 있습니다. 다른 방법으로, 각 뷰 빈에서 브리지를 사용할 필요없이 페이지에서 바로 그 값에 액세스하는 것이 가장 합법적입니다. –

관련 문제