3

最近、私が取り組んでいるこのアプリケーションを JSF 1.2 から JSF 2 にアップグレードしようとしましたが、プロセス中に壁にぶつかりました。AjaxBehaviorEvent が JSF にとってまったく新しいものであり、JSF に戻ったことは既にご存じかもしれません。 1.2 と RichFaces 3 を使用すると、次のことができました。

バッキング Bean に単一のメソッドの署名を含める

public void onSomeEvent(ActionEvent evt){
    //Process the event
}

そして、次の 2 つの場所でこのメソッドを次のように呼び出すことができます 1-

<h:commandButton actionListener="#{bean.onSomeEvent}" value="Process Event"/>

2-

<h:commandButton value="Process Event" >
    <a4j:support event="oncomplete" actionListener="#{bean.onSomeEvent}" />
</h:commandButton>

現在、JSF 2 には、古い ActionEvent と新しい AjaxBehaviorEvent の 2 種類のイベントがあり、どちらも他のものと同じように動作するようには見えません。つまり、f:ajax でメソッドを使用する場合は、引数リストに AjaxBehaviorEvent が必要です。コンポーネントの通常の DHTML イベントで使用する場合は、引数リストに ActionEvent が必要です。

たとえば、両方のタイプのイベントで JSF 2 で行っていたことを行う方法があるかどうか疑問に思っていました。

皆さん、ありがとうございました。

4

1 に答える 1

3

@maple_shaft が提案したように、EL 2.2 を使用してこの問題を克服することができました。使用していなかったメソッドから ActionEvent 引数を削除しました。

于 2012-07-31T11:51:22.913 に答える