2012-08-31 8 views
7

私は実行AJAX呼び出しのこれら二つの方法の違いは何であるか興味:JSFのF:のcommandButtonアクション対アヤックスリスナー

<h:commandButton value="Submit" action="#{bean.action}"> 
    <f:ajax execute="@form" render="component"/> 
</h:commandButton> 

と人々が最初に使用することが表示されます

<h:commandButton value="Submit"> 
    <f:ajax listener="#{bean.action}" execute="@form" render="component"/> 
</h:commandButton> 

道より頻繁に、2番目は同様にうまく動作するようです...

答えて

13

最初の方法は、String結果と第二ませんを返すことで、ナビゲーションが可能になります。クライアントがJSを無効にしている場合、2番目の方法では何も呼び出されませんが、最初の方法はgracefully degradesです。実際、最初の方法がより頻繁に使用されます。

<h:selectOneMenu>のようなaction属性を持たないコンポーネントでは、2番目の方法が唯一の方法です。

関連する問題