39

JSFでWebアプリケーションを開発しています。できる限りテストしましたが、時々実行時例外がスローされます。

では、例外がスローされるたびに (完全な tomcat ログで 500 エラーを表示する代わりに) ユーザーを特別なエラー ページにリダイレクトする方法は?

4

3 に答える 3

59

特定の(またはそのサブクラスのいずれか) またはHTTP ステータス コードに表示するページを指定できる<error-page>in を宣言するだけです。例えばweb.xmlThrowable

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
</error-page>

のサブクラスでエラー ページを表示しますが、またはjava.lang.Exceptionではありません。このようにして、あらゆる種類の. など。_java.lang.Throwablejava.lang.ErrorThrowablejava.sql.SQLExceptionjava.io.IOException

または、

<error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
</error-page>

HTTP 500 エラーのエラー ページを表示しますが、404 (ページが見つかりません)、403 (禁止) などの別のページを指定することもできます。

<%@page isErrorPage="true" %>の上で宣言すると、ELでスローされたもの(およびそのすべてのゲッター) にerror.jspアクセスできます。Exception${exception}

<p>Message: ${exception.message}</p>

この件に関する Java EE 5 チュートリアルも参照してください。

于 2010-04-30T23:40:08.803 に答える
10

web.xml で:

<error-page>
  <error-code>500</error-code>
  <location>/errorpages/500.jsp</location>
</error-page>

特定の例外または拡張する例外をキャッチすることもできますThrowable

<error-page>
  <exception-type>java.lang.Throwable</exception-type>
  <location>/errorpages/500.jsp</location>
</error-page>
于 2010-04-30T23:39:45.827 に答える
0
    If you use java config in spring, you can follow,

   @Configuration
   public class ExcpConfig {

    @Bean(name = "simpleMappingExceptionResolver")
    public SimpleMappingExceptionResolver simpleMappingExceptionResolver() {
        SimpleMappingExceptionResolver resolver= new SimpleMappingExceptionResolver();

        Properties mappings = new Properties();
        resolver.setExceptionMappings(mappings); // None by default
        resolver.setExceptionAttribute("ErrorOccurred"); // Default is "exception"
        resolver.setDefaultErrorView("500"); // 500.jsp
        return r;
    }

}
于 2014-12-01T11:59:28.413 に答える