2013-04-23 3 views
1

두 개의 @ViewScoped Managed Bean 간의 통신에 큰 문제가 있습니다. 다음 목록은 내가이 작업을 수행 한 방법을 보여줍니다. UserAddEditMB가 UserSearchMB에 삽입되고 사용자가 onAdd 액션으로 버튼을 클릭하면 UserAddEditMB init 메소드가 호출됩니다. 결국 내 두 번째 양식에는 탐색 규칙이 있지만 u1 n3 u2는 null입니다.두 개의 @ViewScoped, Inject 간의 JSF 2.0 통신

두 개의 @ViewScoped Managed Bean에서 통신을 수행하는 좋은 방법입니까?

@ManagedBean 
@ViewScoped 
public class UserSearchMB { 

@ManagedProperty(value ="#{userAddEditMB}") 
private UserAddEditMB userAddEditMB; 

public void onAdd(){ 
    userAddEditMB.init(String param1, String param2); 
    return "userAddEdit"; 
} 
... 
} 


@ManagedBean 
@ViewScoped 
public class UserAddEditMB { 

private String u1; 
private String u2; 

public void init(String param1, String param2){ 
    this.u1 = param1; 
    this.u2 = param2; 
} 
.... 
} 
+1

가능한 중복 [하나의 뷰를 주입 다른 관점에서 콩을 범위 빈이가 다시되도록 범위 (http://stackoverflow.com/questions/14231044/injecting -one-view-scoped-bean-in-another-view-scope-bean-cause-it-to-recre) – BalusC

답변

-1

의견이 너무 작기 때문에 답변으로 게시합니다. 당신은 UserAddEditMB에서 UserSearchMB을 얻기 위해 시도 할 수 있습니다 :의

FacesContext context = FacesContext.getCurrentInstance(); 
UserSearchMB test= (UserSearchMB) context.getApplication().evaluateExpressionGet(context, "#{userSearchMB}", UserSearchMB .class); 
+0

답변으로 게시하기 전에 먼저 스스로 실험 해보십시오. – BalusC

+0

예, 죄송합니다. 의견으로 게시해야합니다. :) –