SpringMVC响应Restful风格请求404

一、问题

在学习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请求拦截一般会有后缀的形式,但是restful形式的风格,则没有后缀的方式,所以我们需要springmvc的拦截器的拦截方式修改一下就可以了。

猜你喜欢

转载自blog.csdn.net/sihai12345/article/details/80519682