4

<error-page>通常のリクエストでは、 inを簡単に登録できますweb.xml。ただし、これは Ajax リクエストには適用されません。デフォルトでは、Ajax リクエスト中にエラーが発生すると、ブラウザに小さなポップアップ ウィンドウが表示され、例外が表示されます。

私が苦労している主な例はViewExpiredException、均一な方法で a を処理することです。標準的なリクエストの場合、ユーザーがログインしていないことを説明し、ログイン ページへのリンクを提供するページにリダイレクトします。Ajax リクエストについても同じことをしたいと思います。いくつかの方法があるようです:

  1. クライアント側でエラーを処理し、エラー ページにリダイレクトする JavaScript 関数を作成できます。次に、-attributeを使用して、すべてのページのすべての -tag にこの<f:ajax>関数を追加する必要がありonerrorます。この javascript-function をすべてのタグのデフォルトのエラーハンドラとして使用したいことを JSF に伝える方法はあります<f:ajax>か?
  2. このブログで説明されているように、カスタムの例外ハンドラを使用できます。これは私が望むことをしているようですが、やり過ぎなのだろうか。もっと簡単な解決策はありませんか?

だから私の質問は、これはどのように解決されるはずですか?リストしたアプローチのどれを使用する必要がありますか? 私が知らない別のアプローチはありますか?

4

1 に答える 1

3

を使用jsf.ajax.addOnError()して、デフォルトのエラー ハンドラを設定できます。例えば

jsf.ajax.addOnError(function(data) {
    alert(data.responseText);
});

JSF2 仕様の 13.3.6.2 章も参照してください。objectのすべてのプロパティはdata、JSF2 仕様の表 14-4 にあります。

于 2011-08-21T16:32:12.530 に答える