0

myfaces/jsf で richfaces 3.1.5 を使用すると、a4j アクションを呼び出すと、実行前に、それがオンになっている facelet 全体が再レンダリングされることに気付きます。呼び出されます (これは理にかなっています) が、その後、a4j アクション リンクの起動を含む facelet にある Bean ゲッターのすべてのロジックも表示され、最後にアクションが実行され、次にその再レンダリングが行われます。一部のゲッターのロジックは高価なので、それらが不必要に呼び出されることは望ましくありません。アクション クリック -> アクションの呼び出し -> 再レンダリング ゾーンのサイクルではなく、アクション クリック -> ページ全体の再レンダリング -> が必要なだけです。アクションを呼び出す -> 現在発生しているゾーンを再レンダリングします。

問題があるかどうかはわかりませんが、私の a4j アクションは actionListener にマップされていませんが、null を返す String メソッドを呼び出すアクションにすぎません。助けてくれてありがとう。

4

1 に答える 1

0

getter が JSF で 1 回だけ呼び出されるという保証はありません。高価な呼び出しをゲッターから移動するか、ゲッターでロジックを呼び出す前にチェックを行う必要があります。一般に、(JSF のコンテキストで) getter に高価なロジックを配置することはお勧めしません。

于 2011-06-04T20:54:03.443 に答える