0

コマンド ボタンに複数の actionListeners を設定することはできますか?

そうでない場合、これを回避する方法はありますか?

ご協力いただきありがとうございます!

4

1 に答える 1

1

いいえ、サーバー側のコールバック メソッドを 2 つだけ追加できます。

  • actionListener
  • action.

<ice:commandButton action="#{bean.navigateTo}" actionListener="#{bean.doSomething}"/>

actionListenervoidActionEvent を返し、引数として受け取るpublic メソッドを指す必要があります。通常、ナビゲーション ロジックに関連しないタスクに使用され、コントロールの古い値と新しい (= 変更された) 値を提供するという利点があります。これは、チェックボックスのような入力コントロールでは特に意味があります。

actionString引数を取らずに a を返す public メソッドを指す必要があります。このメソッドは、ナビゲートに必要なすべてのことを行います。たとえば、追加の検証 (基本的な JSF バリデーターによって処理されていない場合) などです。結果は、 のナビゲーション ルールと一致する必要がありますfaces-config.xml

これにより、サーバーロジック内で複数のタスクを処理する十分な可能性が得られます (これが、複数の actionListener を持つ理由だと思います)。

さらに、いくつかのクライアント側タスクのみを実行する必要がある場合は、いくつかの on* JavaScript プロパティを利用できます。

リファレンス: ICEfaces カスタム コンポーネント Taglib

于 2009-08-27T05:54:27.880 に答える