2012-04-11 7 views
0

richfacesカレンダーでPOSTデータでユーザーがタンパーすると、一般的なエラーメッセージページを表示しようとしています。 (改ざんデータfirefoxプラグインを使用して)。ユーザーがフォームを送信したときの例外のJSFエラーページを表示します。

通常の日付を選択し、改ざんをオンにして、日付値を文字列値を含むように調整します。次のエラーメッセージを表示するページに戻ります。

java.lang.NumberFormatException: For input string: "2012dsafsf" 
java.lang.NumberFormatException: For input string: "2012sdfsdf" 

私は<h:messages />を使用してメッセージを表示しています。

私はweb.xmlに以下を追加しましたが、このページにリダイレクトされていません。

<error-page> 
    <exception-type>java.lang.NumberFormatException</exception-type> 
    <location>/error.xhtml</location> 
</error-page> 

私は間違っていますか?

私が本質的に必要とするのは、ジェネリック・クラス/フェーズ・リスナー/コンバーター/何でもJSFによって捕捉される特定のタイプの例外を傍受して処理することです。 (処理されない例外ではありません)。

おかげ

+0

あなたは非同期(AJAX)または同期(通常の)リクエストを送信していますか?これはJSF 1.xまたは2.xですか? – BalusC

+0

JSF 2.0 BalsusCを使用して同期リクエストを送信しています。 –

+0

@BalsusC - 最後のコメントを参照してください。もう一度これに戻ってください。私は基本的に、このタイプの例外をエラーページにリダイレクトしようとしています。メッセージを傍受するために位相リスナーを作成する必要がありますか?私は現在、処理されていない例外を処理するためのExceptionHandlerWrapper設定を持っています。これらのタイプの例外を傍受するためにこれを使用できますか? –

答えて

1

それを修正する最も簡単な方法は、フィールドにバリデータを追加することです。バリデーターを使用すると、このエラーに対して特定のメッセージを追加することができます。

検証&変換に関するいくつかの情報:エラー文書はHTTPステータスコードのために使用されているhttp://www.ibm.com/developerworks/java/library/j-jsf3/

(例えば500分の404)

+0

ありがとうございます、私はバリデータを作成しましたが、これはうまくいきますが、なぜ私のweb.xmlの変更が選ばれていないのか知りたいと思います。 –

+0

スローされた例外は、他のタイプの例外にラップされていると思います。 javax.servlet.ServletExceptionは良いテストです。しかし、これは再び推測です。 –

関連する問題