3

/ error / *で発生するすべてのものを処理するSpringDispatcherservletを備えたWebアプリ(2.5サーブレット仕様)と、それを/error/にルーティングするように構成されたエラーページがあります。

<servlet>
    <servlet-name>errorServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>errorServlet</servlet-name>
    <url-pattern>/erorr/*</url-pattern>
</servlet-mapping>
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/erorr/</location>
</error-page>

およびerrorServlet-servelt.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <context:annotation-config/>
    <context:component-scan base-package="some.base.package"/>
    <bean id="simpleUrlController" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/*">errorController</prop>
            </props>
        </property>
    </bean>
    <bean id="errorController" class="ErrorController">
        <property name="formView" value="formView"/>
        <property name="commandClass" value="Error"/>
        <property name="commandName" value="errorNAMe"/>
    </bean>
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>

ヘルプが必要なスポット:

  1. これがエラーに取り組むための最良のアプローチであるかどうか。
  2. 構成で宣言できるSimpleMappingExceptionResolverがあることは知っていますが、このクラスは、Springコントローラーからの例外のみで、他のクラスではないという点で優れているとどこかで読みました。
4

1 に答える 1

5
  1. 現在作業中のアプリケーションでこのアプローチを使用していますが、正常に機能しているようです。
  2. それは本当ですが、それは問題ではありません。Webアプリケーションの場合、スローされた例外は最終的に最上位にバブルアップします。これはSpringコントローラーである必要があります。その後、別のページに転送する場合でも、アプリケーションを爆発させる場合でも、構成に基づいてそこから処理されます。

これは、基本についてのかなり良いチュートリアルです。あなたがそれをググるなら他にもあります:http: //developingdeveloper.wordpress.com/2008/03/09/handling-exceptions-in-spring-mvc-part-2/

編集:エラーページにリダイレクトするだけでなく、これらの例外をデータベースに入れることもできるので、発生する最も一般的な例外のリストがあります。JoelとJeffは、StackOverflowでこれを行っており、そのリストがバグ修正リストの一部になると述べています。

于 2009-07-27T16:19:19.123 に答える