在學習Springmvc時,使用Restful風格的url,頁面提示404錯誤。為找到原因,編寫一個簡單的Restful測試用例如下:
jsp頁面:
<a href="user/testRestful.do/1">測試restful</a>
對應的Java代碼:
package com.mySSM.controller; @Controller @RequestMapping("/user") public class UserLoginController { private static Logger logger=LoggerFactory.getLogger(UserLoginController.class); @RequestMapping("/testRestful.do/{id}") public String testRestful(@PathVariable("id") Integer id){ System.out.println(id); return null; } }
但是依然提示404異常:The requested resource is not available.
最終找到原因如下:
web.xml配置文件中使用dispatch配置如下:
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do/url-pattern> </servlet-mapping>
當使用上述配置時,找到url對應的controller,Springmvc不認為url請求和@RequestMapping可以對應。
解決方法:
將
<url-pattern>*.do/url-pattern>改為攔截所有請求:/
問題根本原因待追蹤,而且這也不是很好的解決方法,只是暫時解決了問題。