コマンドボタンに複数のactionListenersを持つことはできますか?Icefaces:コマンドボタン用の複数のactionListener
この場合、この方法はありませんか?
ありがとうございました!
コマンドボタンに複数のactionListenersを持つことはできますか?Icefaces:コマンドボタン用の複数のactionListener
この場合、この方法はありませんか?
ありがとうございました!
いいえ、あなたは2つだけ、サーバー側のコールバックメソッドを追加することができます。
actionListener
と action
<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>
actionListener
void
を返し、引数としてのActionEventをとるパブリックメソッドを指すように有しています。これは一般に、ナビゲーションロジックに関連していないタスクに使用され、コントロールの古い値と新しい値(=変更された値)を提供するという利点があります。これは、チェックボックスのような入力コントロールでは特に意味があります。
action
は、引数をとらずにString
を返すパブリックメソッドを指す必要があります。このメソッドは、ナビゲーションに必要なすべての処理を行います(たとえば、基本的なJSFバリデーターで処理されていない場合)。結果はfaces-config.xml
のナビゲーションルールと一致しなければなりません。
これは、サーバーロジック内で複数のタスク(複数のactionListenerを持つ理由があると思われます)を処理するための十分な可能性を提供します。
さらに、一部のクライアントサイドタスクのみを実行する必要がある場合は、いくつかのon * JavaScriptプロパティを利用できます。
参考文献: