簡體   English   中英

spring mvc默認映射處理程序

[英]spring mvc default mapping handler

基本上,使用Spring MVC,我正在嘗試創建一個路由器控制器,它將接收尚未由另一個控制器處理的任何URL並將其路由到其各自的資源,或者如果找不到資源則轉發搜索請求。 使用@RequestMapping(value="/{qry}", method = RequestMethod.GET)成功獲取了我的其他控制器尚未抓取的請求(這似乎通過首先檢查最具體的映射來工作)然后我可以做任何我需要的轉發。 但是,只要我在請求中放入“/”,映射就會中斷並返回404。

所以換句話說, "/some-long-path-or-something"正確地映射到這個全能控制器,但是"/some/other/path" (它沒有映射到任何其他控制器)沒有被我抓住包羅萬象。

如何實施? 我已經閱讀了一些關於攔截器和默認處理程序的內容,但沒有找到解決方案的運氣。

謝謝你的任何建議!

開箱即用,Spring自動注冊一個DefaultAnnotationHandlerMapping bean,它使用注釋匹配對控制器的請求。 在大多數情況下,它的默認行為都很好。

如果在上下文中聲明自己的DefaultAnnotationHandlerMapping ,那么它將覆蓋默認值,並允許您設置其defaultHandler屬性,該屬性將在沒有任何顯式處理程序匹配時使用。 只需將“catch-all”控制器注入該屬性,然后將Bob's Your Uncle注入其中。

為什么不抓住404並相應處理? 如果我沒有弄錯的話,我認為這就是你想要完成的事情。

您可以將它放在web.xml中來處理404:

<error-page>
    <error-code>404</error-code>
    <location>/yourHandlerPage</location>
</error-page>  

我在這里錯過了什么嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM