1
<bean
    class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="mappedHandlers">
        <set>
            <ref bean="exceptionController" />
        </set>
    </property>
    <property name="defaultErrorView" value="tiles/content/error" />
</bean>

リダイレクトを作成できるように、コントローラーに例外を送信しようとしています。マップされたハンドラー部分をコメントアウトすると、エラータイルが表示されますが、これはタイルにすぎません。残りのタイルは正常に読み込まれます。エラータイルだけでなくエラーページを表示できるように、コントローラーでリダイレクトを行う必要があります。

十分な情報や、例外がexceptionControllerのメソッドを呼び出す方法の例を見つけることができません。

4

1 に答える 1

5

あなたはそのmappedHandlers物件が何のためにあるのか誤解しています。これは、この例外リゾルバーBeanは、そのプロパティにリストされているコントローラーによってスローされた例外にのみ適用される必要があることを意味します。そのコントローラーに例外送信しません。

単純なリダイレクトを送信する場合は、次のように実行できます。

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="defaultErrorView" value="redirect:/myErrorPage" />
</bean>

ただし、これを行うと、例外に関するすべての情報が失われます。

例外を処理するカスタムコードを記述したい場合は、HandlerExceptionResolver(おそらくのサブクラスAbstractHandlerExceptionResolver)の独自の実装を記述し、の代わりにそれを使用することをお勧めしますSimpleMappingExceptionResolver

もう1つの方法は、@ExceptionHandler注釈スタイルを使用することです(ここのドキュメントを参照)。

于 2010-05-26T07:11:01.590 に答える