在学习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>改为拦截所有请求:/
问题根本原因待追踪,而且这也不是很好的解决方法,只是暂时解决了问题。
原文:http://www.cnblogs.com/kode/p/5128714.html