SpringMVC源码(十)RequestMapping请求映射

来源:互联网 发布:下载东西软件 编辑:程序博客网 时间:2024/06/16 23:37

标准映射

规则:

1) @RequestMapping可以设置在类上,也可以设置在方法上

2) 请求的映射规则是:类上的RequestMapping + 方法上的RequestMapping

3) 如果没有写 / ,SpringMVC会自动补全

4) 类上的RequestMapping可以省略,这时直接用方法的RequestMapping访问

5)路径不可重复

代码:

@Controller @RequestMapping("test") //处理器上的通用映射前缀public class Test {@RequestMapping("show")//功能方法上对处理器类上映射的窄化public ModelAndView alibaba() {ModelAndView mv = new ModelAndView("hello");mv.addObject("msg", "RuquestMapping请求映射");return mv;}}

这个方法的访问路径就必须是:/test/show


Ant风格映射

Ant风格,其实就是通配符映射,有以下3种方式:


演示Ant风格:

以下路径都可以匹配到:



占位符映射

例如:

@RequestMapping(value="/users/{userId}"):

其中{xxx}占位符,请求的 URL 可以是 “/users/123456”或“/users/abcd”,

通过@PathVariable 可以提取 URI 模板模式中的{xxx}中的xxx变量。



但是,如果传递的参数格式不正确,会出现错误:



请求方式限定

我们可以通过@RequestMapping注解中的 method属性来限定客户端的请求方式,method属性可以接收的是一个枚举数组:

例如:限定请求方式必须是POST


如果使用GET请求,就会报错:


我们用Advanced Client 来模拟POST请求:


请求成功:


当然,也可以同时指定多种请求方式,多种方式之间是或的关系:


结果:



请求参数限定

我们还可以通过@RequestMapping注解的params属性来对请求的参数进行限定:


代码:

如果请求时,没有传递id参数:


正确的方式:


原创粉丝点击