1

次のような状況があります。

    form1.xhtml:
    <h:commandButton action="#{bean1.action1}" /> <!-- action1 returns "form2" -->
    form2.xhtml:
    <h:form binding="#{bean2.init}">
    ...
    <h:commandButton action="#{bean2.action2}" /> <!-- *** -->
    </h:form>

    Bean2.java:
    @Named
    Bean2{
    public Object getInit(){
        return null;
    }

    public void setInit (Object i){
        //do something
    }

form1が送信されると、バインディング メソッド setInit() がフェーズ 6 RENDER_RESPONSE 中に実行され (action1() が「form2」を返した後)、form2 が表示されます。

form2が送信されると、action2() が「null」を返す場合、フェーズ 1 RESTORE_VIEW 中に setInit() が実行されます。ただし、action2() が null ではなく「form2」を返す場合、このメソッドはフェーズ 6 中にも呼び出されます。

なぜなのかご存知ですか?アクションが null を返す場合にもバインディング メソッドを呼び出すことは可能ですか?

どうもありがとう!

4

0 に答える 0