基本上,使用Spring MVC,我試圖創建一個路由器控制器,將採取任何URL尚未被另一個控制器處理,並將其路由到其各自的資源或轉發搜索請求如果沒有資源可以找到。 使用@RequestMapping(value="/{qry}", method = RequestMethod.GET)
成功地獲取了我的其他控制器尚未抓取的請求(這似乎是通過首先檢查最具體的映射工作),然後我可以做任何我需要的轉發。然而,只要我在請求中加入「/」,映射就會中斷並返回一個404.春天mvc默認映射處理程序
換句話說,"/some-long-path-or-something"
正確映射到這個全捕獲控制器,但是"/some/other/path"
(它不映射到任何其他控制器)都不會被我的全部抓住。
這是如何實現的?我已經閱讀了有關攔截器和默認處理程序的一些內容,但沒有找到解決方案的運氣。
感謝您的任何建議!
我正在考慮使用這種方法,但是這會創建一個重定向或轉發?此外,我假設原始請求信息以某種方式發送到錯誤頁面,對吧? – jerluc 2011-02-15 19:48:57
我還沒有測試過這個,但是根據我讀的一篇文檔,似乎請求被轉發,而不是重定向,這就是你想要的:`一個錯誤頁面元素定義了一個資源來處理特定類型的錯誤。每個錯誤頁面元素都包含一個錯誤代碼元素和一個位置元素。錯誤代碼定義了元素處理的HTTP錯誤代碼。位置元素定義了將請求轉發到的路徑。該位置可以是容器可訪問的任何資源,包括上下文中的靜態文件,遠程HTTP資源或容器內的另一個servlet。# – limc 2011-02-15 19:56:54