1

ユーザーがコンボボックス (onChange イベント) で値を選択すると、部分的な更新を実行する Xpage があります。コンボボックスは、実際にはカスタム ビュー コンポーネントのフィルター セレクターです。このイベントは、いくつかの SSJS コードをトリガーし、部分的な更新を実行します。おそらく XPages セッションが削除されたことが原因で、このイベントは時折中断します。部分的な更新は実行されますが、viewScope 変数を設定する SSJS コードは実行されなくなります。これにより、フィルタが適用されていないすべてのデータがビューに表示されます。

ssjs 関数の最初の行として print ステートメントを追加しました。この print ステートメントは実行されなくなりました。

ページを開いた状態でhttpを再起動することで、これを再現できました。

Chrome devtools のネットワーク タブを見ると、partialRefreshPost でステータス 200 が表示されます。また、partialrefresh id は正しいようです。

説明はありますか?

4

1 に答える 1

5

これは、セッションがタイムアウトした場合、サーバーが再起動された場合、および/またはアプリケーションが再構築された場合に発生します。

部分的な更新がサーバーに送信される場合、それは HTTP GET ベースの要求のようなものです。現在の XPage の永続化されたビューは「再び起動」されますが、一部の JSF ライフサイクル フェーズはスキップされます (3、4、5)。部分的な更新の SSJS コードは、スキップされたフェーズで実行されるため、コンソールに出力されません。

[これは非常に短い説明です。詳細については、JSF ライフサイクルとその詳細に関するXPages マスター クラス ビデオを確認してください]

于 2013-04-16T13:10:15.463 に答える