2

スレッドを続ける: Apache Tiles と Spring MVC のグローバル例外ページ

web.xml で定義されたエラー ページがあります。

<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/jsp/404.jsp</location>
</error-page>

Spring MVC でもう 1 つ問題があることに気付きました。

a) no @RequestMappingが一致した場合、カスタム エラー jsp が出力されます。

b) a@RequestMappingが一致したが、メソッドがエラーステータスを設定した場合。

response.setStatus(404);

次に、JSP ではなく、Tomcat (7.0.29) のデフォルトのエラー ページが選択されます。

なんで?404 ページを常に表示する方法は?

4

3 に答える 3

5

あなたが経験していることは、あなたが言及した行によって引き起こされていると思います:response.setStatus(404);

このメソッドは、コンテナーのエラー ページ メカニズムをトリガーしません。エラーがない場合に使用する必要があります。メカニズムをトリガーするには、公式ドキュメントで推奨されているsendErrorを使用する必要があります。

ところで、サーブレット仕様間で動作が異なることがわかりました。2.3 と 2.4 (ここを読む)。2.3 では、2 つのメソッドはまったく同じことを行うと言われていますが、2.4 では異なります........

于 2013-06-03T17:07:18.267 に答える