2015-01-20 2 views
0

두 개의 JSF 페이지 (예 : page1 및 page2)가 있습니다. 첫 번째 페이지는 사용자 데이터가있는 테이블을 나타냅니다.JSF에서 JSF로 데이터

<h:dataTable value="#{dataBean.collection}" var="contact"> 
    <h:column> 
     <f:facet name="header"> 
      First name 
     </f:facet> 
     <h:outputText value="#{contact.firstName}"/> 
    </h:column> 

    <h:column> 
     <f:facet name="header"> 
      Last Name 
     </f:facet> 
     <h:outputText value="#{contact.secondName}"/> 
    </h:column> 

    <h:column> 
     <f:facet name="header"> 
      Phone 
     </f:facet> 
     <h:outputText value="#{contact.phone}"/> 
    </h:column> 


    <h:column> 
     <f:facet name="header"> 
      Details 
     </f:facet> 
     <h:button outcome="#{dataBean.doSomeMagic(contact)}" value="Detailed info" /> 
    </h:column> 
</h:dataTable> 

그래서 때 우리는 현재 user.The 질문에 대한 자세한 정보를 보여줍니다 우리가 페이지 2로 리디렉션해야한다 "상세 정보"버튼을 클릭 두 pages.I 노력이 사이의 데이터 전송하세요를 구성하는 가장 좋은 방법은 무엇인가 빈 상태를 저장하고 네비게이션 규칙을 위해 String을 반환하는 몇 가지 메소드 ("doSomeMagic")를 개발하지만, 나는 항상 테이블의 마지막 행에서 사용자를 얻는다.

public String doSomeMagic(UserBean userBean){ 
    beanToDisplay = userBean; 
    return "user"; 
} 

페이지 2는 beanToDisplay 필드의 정보를 보여줍니다. 나는 바퀴를 재발 명하고 싶지 않고이 작업을 해결할 수있는 기본적인 방법을 알고 싶습니다. 답장을 보내 주셔서 감사합니다!

답변

0

이 목적으로 requestScope을 사용할 수 있습니다. requestScope에 데이터를 설정하면 다음 요청 (페이지)에서 데이터에 액세스 할 수 있습니다.

이 예에서는 컨트롤러 안에있는 request에 사용자 데이터를 설정하고 다음 페이지에서 해당 데이터를 읽을 수 있습니다.