RequestMapping翻译过来就是请求映射
主要功能就是:就是将请求和处理请求的控制器方法关联起来,建立映射关系
服务器接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
可以加在控制器类上,加在类上代表标识一个类
加在类上在访问类内部方法时,必须要在路径前面加上类标识上的路径(上图要加上/hello)才可以正常访问内部方法
也可以加在方法上,加在方法上就是标识一个方法
就是标记一个方法,通过解析调用这个方法
value属性的作用就是请求路径,当客户端发送何种请求时调用
由图可知value是一个String类型的数组,也就是其中可以存放多个数据
其中path和value属性所代表的意思相同,由@AliasFor(别名)可以看出
其中value属性是必须设置
@RequestMapping(value = {"/","hello"})
通过设置method属性,用来规定请求方式(post,get,put,delete)
其中可以通过RequestMethod来规定使用的请求方式, RequestMethod是一个枚举类型
method属性也是数组类型的,也可以同时设置多个
@RequestMapping(value = {"/","hello"},method = {RequestMethod.DELETE,RequestMethod.GET})
同时也可以使用派生注解
处理get请求的映射-->@GetMapping
处理post请求的映射-->@PostMapping
处理put请求的映射-->@PutMapping
处理delete请求的映射-->@DeleteMapping
用来代替method属性
当请求方式不满足method属性时报,405错误:Request method 'xxxx' not supported
params属性通过请求的请求参数匹配请求映射,相当于对请求路径进行一定的规则匹配,满足params设定规则的才可以被匹配
主要设置规则:
"name":要求请求映射所匹配的请求必须携带name请求参数
"!name":要求请求映射所匹配的请求必须不能携带name请求参数
"pwd=123456":要求请求映射所匹配的请求必须携带pwd请求参数且pwd=123456
"pwd!=123456":要求请求映射所匹配的请求必须携带param请求参数但是pwd!=123456
- @RequestMapping(value = {"test"},
- method = {RequestMethod.GET},
- params = {"name","!username","pwd=123456","password!=55555"}
- )
- public String test(Model model){
- model.addAttribute("zt","ok");
- return "test";
- }
上述规则为:访问路径必须含有name,且不能还要username,其中必须含有pwd且内容必须为123456,password不一定含有,如果含有内容不能是55555,规则必须全部满足
params也是数组,类型为String,可以同时指定多个规则
如果不匹配则会报400错误
Parameter conditions "指定的规则" not met for actual request parameters: 你的请求参数
headers属性通过请求的请求头信息匹配请求映射,与params类似不过这个规则检查是对请求头来进行检验的
"header":要求请求映射所匹配的请求必须携带header请求头信息
"!header":要求请求映射所匹配的请求必须不能携带header请求头信息
"header=value":要求请求映射所匹配的请求必须携带header请求头信息且header=value
"header!=value":要求请求映射所匹配的请求必须携带header请求头信息且header!=value
- @RequestMapping(value = {"test"},
- method = {RequestMethod.GET},
- params = {"name","!username","pwd=123456","password!=55555"},
- headers = {"!Host"}
- )
- public String test(Model model){
- model.addAttribute("zt","ok");
- return "test";
- }
上面的代码headers的规则表示请求头中不能含有Host
在浏览器发送请求下必定会携带Host,于是一定会报错
注意这里报错是404,与找不到路径是相同报错
以上就是 @RequestMapping注解常用的一些属性啦
如果有错误的地方欢迎大家指正