1

次のようなJavaServerFacesの標準エラーページを置き換えることは可能ですか?

500 Internal Server Error

これには、スタックトレースなどの情報が含まれます。ただし、ユーザーの場合、ページが本番モードのときに、リクエストが成功しなかったことを示すわかりやすいページを表示したいと思います。

4

1 に答える 1

5

開発スタックトレースは、おそらくJSF実装からのものです。それを無効にするためのコードは、実装に固有のものになります。サーブレットのMyFacesの場合、 web.xml:でこのinitパラメータを使用します。

  <context-param>
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
    <param-value>false</param-value>
  </context-param>

Sunの実装(Mojarra)を使用している場合は、いくつかのcom.sun.faces...キー付きパラメーターがある可能性があります。

Facelets initパラメーター の値を確認することもできますfacelets.DEVELOPMENT(に設定されていないことを確認してくださいtrue)。

エラーページを指定するには、通常のコンテナメカニズムを使用できます。サーブレットの場合、これは、例外タイプまたはエラーコードのいずれかにキー設定されたエラーページをで指定することによって行われます。 web.xmlすべてのスローアブルをキャッチするには...

  <error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/errorPage.faces</location>
  </error-page>

JSF実装では、エラー処理に関するベンダー固有の追加サポートが見つかる場合があります。それらのドキュメントを確認する必要があります。

于 2009-10-21T11:12:16.790 に答える