JSFでWebアプリケーションを開発しています。できる限りテストしましたが、時々実行時例外がスローされます。
では、例外がスローされるたびに (完全な tomcat ログで 500 エラーを表示する代わりに) ユーザーを特別なエラー ページにリダイレクトする方法は?
JSFでWebアプリケーションを開発しています。できる限りテストしましたが、時々実行時例外がスローされます。
では、例外がスローされるたびに (完全な tomcat ログで 500 エラーを表示する代わりに) ユーザーを特別なエラー ページにリダイレクトする方法は?
特定の(またはそのサブクラスのいずれか) またはHTTP ステータス コードに表示するページを指定できる<error-page>
in を宣言するだけです。例えばweb.xml
Throwable
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
のサブクラスでエラー ページを表示しますが、またはjava.lang.Exception
ではありません。このようにして、あらゆる種類の. など。_java.lang.Throwable
java.lang.Error
Throwable
java.sql.SQLException
java.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 チュートリアルも参照してください。
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>
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;
}
}