コントローラ内のすべてのリクエストマッピングが着信リクエストと一致しないとどうなりますか? Exception.classをキャッチしている例外ハンドラを使用していましたが、それをキャッチしていないようですか?誰でも説明できますか?Spring MVC要求マッピングがない場合の例外はどのように処理されますか?
1
A
答えて
1
documentation@ExceptionHandler
によると、コントローラの実行中に発生する予期しない例外を処理します。着信要求が要求マッピングに一致しない場合、コントローラメソッドは実行されません。
サーブレット技術に基づくSpring-MVC。すべての着信要求はDispatcherServlet
(web.xml
に登録されています)で処理されます。 DispatcherServlet
は、現在の要求を処理できるハンドラを探します。適切なハンドラが見つからない場合(すなわち、適切なマッピングされたコントローラの方法が見つからない場合)、DispatcherServlet
は404エラーを開始する。 エラーが発生すると、Webコンテナ(Tomcatまたは他のサーブレットコンテナ)が例外メッセージを含むデフォルトページを生成します。ただし、コンテナが特定の例外の特定のエラーページを返すように指定することもできます。 location
は春MVCによって処理されます
...
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<error-page>
<error-code>404</error-code>
<location>/page-not-found</location>
</error-page>
...
のでいつもの要求として、あなたがこれを処理するコントローラを作成することができます。プロセスのためにこのエラーが手動でweb.xml
新しいerror-page
要素に追加する必要があり、それはあなたがURLにエラーコードをマップできるようになりますリクエスト:
@Controller
public class ExceptionController{
@RequestMapping("/page-not-found")
public ModelAndView pageNotFound(){
return new ModelAndView("page-not-found");
}
}
は今、名前だけpage-not-found.jsp
でビューを作成し、あなたが望むように例外情報を表示します。
関連する問題
- 1. spring mvcの例外処理
- 2. Spring 4 mvcグローバル例外処理
- 3. Spring MVCの要求マッピング規則
- 4. Spring MVC要求マッピングのチャレンジ
- 5. mongodbが実行されていない場合、mongoskinによってスローされた例外をどのように処理できますか?
- 6. Spring MVC - 要求URIのマッピングが見つかりません
- 7. C#例外が処理されない
- 8. Spring MVCの処理要求で有効にする
- 9. Spring MVCのカスタム例外マッピング機能していない
- 10. 例外org.springframework.web.util.NestedServletException:要求の処理に失敗しました。ネストされた例外はjava.lang.NullPointerExceptionです。
- 11. パラメータ値によるSpring MVC要求マッピングの分割方法
- 12. Pythonが例外処理を要求します
- 13. Catchブロックで例外が発生した場合は、C#でどのように処理するのですか?
- 14. 例外処理をどのようにクリーンアップできますか?
- 15. 例外が処理されなかった - 再スロー例外
- 16. Spring MVCで例外を処理する方法は?
- 17. ASP.NET MVCで未処理の例外をログに記録するにはどうすればよいですか?
- 18. Spring JdbcTemplate batchUpdate例外処理
- 19. Spring AOP例外処理
- 20. Djangoの例外処理とアトミックな要求
- 21. 例外がスローされた場合、Laravel DB Transactionはどうなりますか?
- 22. 定義されていないルート例外を処理するにはどうすればよいですか?
- 23. チェックされていない例外を処理するにはどうすればよいですか?
- 24. Spring-MVC:要求時にコントローラメソッドが呼び出されない
- 25. Spring MVCがマップされていないリクエストを処理する
- 26. 処理されない例外の処理
- 27. 検証エラーとしてのSpring MVC例外の処理
- 28. Androidで処理されない例外
- 29. 処理されない例外
- 30. Log.wtf対処理されない例外
ルート '/'に2つのマッピングがあり、 '/ api'にもう1つのマッピングがある場合、それは最も近いマッチングを行います。 apiだけが/ apiによって処理されますが、他のものは私が信じる根と一致します。それであなたが好きなものは何でも処理できます。やってみました ? – bhantol
はい、現時点ではGETリクエストを行っていますが、マッピングがないので(すべてPOSTリクエストのマッピングです)、エラー/例外(HTTP 400ページにつながるもの) GETのためのリクエストマッピング –
私はあなたを正しく理解しています。もしマップされていないリクエストが来た場合は、ステータスコード404のページになります。ハンドラを正しく実装していない可能性があります。プロジェクトにweb.xmlが含まれている場合は、 ' 'タグを使用して設定できます。場合は、注釈の設定ビューに関連する投稿に基づいて:http://stackoverflow.com/questions/13356549/handle-error-404-with-spring-controllerとあなたがスプリングのブートを使用している場合は、 'EmbeddedServletContainerCustomizer'を定義し、コントローラーで処理するエラーページです。 –
GVArt