2017-11-17 32 views
0

를 동작하지 않습니다JSF 양식간에 값 전달.</p> <p>bean1을 : 나는이 주제에 대한 다른 게시물을 읽어하지만 난 여전히</p> <p>이 내 콩입니다 동작하지 않습니다이

@ManagedBean() 
@SessionScoped 
public class Bean1 implements Serializable { 

    //Here are some important Properties 

    public String buttonPressed() { 

     return "bean2.xhtml"; 
    } 
} 

<h:form> 
     <p:commandButton action="#{Bean1.buttonPressed}" value="Do Work"/> 
</h:form> 

Bean2 : 이제

@ManagedBean() 
@SessionScoped 
public class Bean2 implements Serializable { 

    @ManagedProperty(value = "#{Bean1}") 
    private Bean1 b1; 
    //getter/setter is here 

    public String doWorkOnSubmit() { 

     //Access important Properties from bean1 
     b1.getFoo() 
    } 
} 

나는이 두 가지 문제

) 1. Bean1의 버튼을 누르면 "doWorkOnSubmit"을 호출하는 법?) 관리 속성을가 SessionScoped이기 때문에 생성자를 사용할 수 없습니다 내가 doWorkOnSubmit 유엔

2.

를 제출 호출하는 방법을 모른다 "B1은"당신이 Do Work 버튼의 클릭에 있기 때문에

답변

0

가끔 널 액션 메소드를 호출하면 Bean2s doWorkOnSubmit()Bean2Bean1에 삽입하여 호출 할 수 있습니다. 여기

은 코드가 변경됩니다 :

@ManagedBean() 
@SessionScoped 
public class Bean1 implements Serializable { 

    //Here are some important Properties 

    /* 
    * Inject Bean2 here. since both beans are session scoped, 
    * there ain't gonna be any problem in injection. 
    */ 
    @ManagedProperty(value = "#{Bean2}") 
    private Bean2 b2; 

    //GETTER SETTER for b2 

    public String buttonPressed() { 

     //Here you will be invoking injected managed beans method. 
     b2.doWorkOnSubmit(); 

     return "bean2.xhtml"; 
    } 
} 
+0

그러나 나는 이미 Bean2에 bean1을 주입하고있다. 이중 참조는 어떻게 작동해야합니까? –

+0

작동합니다. 걱정 마. 시도 해봐. –