0

私のページには Ajax の表示/非表示機能があります。<f:subview>最初のページのロード中に、レンダリングされていない、または<h:panelGroup>呼び出されていないBean メソッドがあります。Ajax を使用して再レンダリングする@formと、関連するサブビューはレンダリングされませんが、Bean メソッドが呼び出されます。これは起こるべきことですか?(私はJSF 2.2を使用しています)

4

1 に答える 1

0

これは、上記の私のコメントによると予想される動作です。残念ながら、いくつかの醜い動作が伴います。

リストを使用するときに何かをしているオブジェクトの場合、最初のリクエストで問題なく動作します。これで何かをロードすることで予防策を講じたとしてもf:event、次のAJAXリクエストであなたを救うことはできません。

例: リクエストのスコープで管理される各 Bean で JPA を使用し、その Bean にレンダリングされない遅延コレクションがある場合、次のようになります。

リクエスト 1: レンダリングされていないコンポーネントは変更されません。つまり、遅延コレクションは初期化されません。

リクエスト 2 (Ajax): JSF は、ロードされていない遅延コレクションを呼び出して完全なビューを復元しようとしますが、例外が発生します。

于 2013-07-26T14:03:21.777 に答える