内容简介:之前在该注解主要用法有两种,示例如下如果我们想获取全部的get请求值,可以不明确指定RequestParam注解的value,并且使用map来接收参数。这样我们就可以得到全部的请求值。
之前在 SpringBoot源码解析-controller层参数的封装 中已经分析过springboot中controller层参数封装的原理,但是工作中毕竟不会一直有时间给你慢慢分析,有时候快速查询也是很必要的。所以今天就总结一下controller层哪些参数封装注解的含义,以及使用,方便以后快速查阅。
@RequestParam注解
该注解主要用法有两种,示例如下
1.指定参数名
http://127.0.0.1:8080/hello?id=123 @GetMapping("hello") public String hello(@RequestParam("id") String id){ log.info("[{}]",id); return "hello"; } id = 123 复制代码
2.不指定参数名
http://127.0.0.1:8080/hello?id=123&name=liuyu @GetMapping("hello") public String hello(@RequestParam Map<String,String> value){ System.out.println(value); return "hello"; } value = {id=123, name=liuyu} 复制代码
如果我们想获取全部的get请求值,可以不明确指定RequestParam注解的value,并且使用map来接收参数。这样我们就可以得到全部的请求值。
@PathVariable注解
该注解主要用法有两种,示例如下
1.指定参数名
http://127.0.0.1:8080/hello/liuyu/qwert @GetMapping("hello/{id}/{name}") public String hello(@PathVariable("id") String id,@PathVariable("name") String name){ System.out.println(value); System.out.println(name); return "hello"; } id = liuyu ,name = qwert 复制代码
2.不指定参数名
http://127.0.0.1:8080/hello/liuyu/qwert @GetMapping("hello/{id}/{name}") public String hello(@PathVariable Map<String,String> map){ System.out.println(map); return "hello"; } map = {id=liuyu, name=qwert} 复制代码
@MatrixVariable注解
如果要使用该注解需要开启配置
@Component public class GlobalWebMvcConfigurer implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { UrlPathHelper urlPathHelper=new UrlPathHelper(); urlPathHelper.setRemoveSemicolonContent(false); configurer.setUrlPathHelper(urlPathHelper); } } 复制代码
该注解主要用法有两种,示例如下
指定参数名
http://127.0.0.1:8080/hello/liu;value=123 @GetMapping("hello/{id}") public String hello(@PathVariable(name = "id") String name,@MatrixVariable(name = "value") String value){ System.out.println(name); System.out.println(value); return "hello"; } id = liu value = 123 复制代码
不指定参数名
http://127.0.0.1:8080/hello/liu;value=123;name=qwe @GetMapping("hello/{id}") public String hello(@PathVariable(name = "id") String name,@MatrixVariable Map<String,String> value){ System.out.println(name); System.out.println(value); return "hello"; } id = liu value = {value=123, name=qwe} 复制代码
@RequestBody注解
post 请求,将请具体封装成实体bean
post请求体 { "name":"liu", "id":"123" } @PostMapping("hello") public String hello(@RequestBody User user){ System.out.println(user); return "hello"; } user(id=123, name=liu) 复制代码
@RequestHeader注解
获取请求头的字段,同样的有获取单个请求头和获取全部请求头的两种用法。
@CookieValue注解
获取cookie中的键值对的值。
请求头添加 Cookie:value=liuyu @GetMapping("hello") public String hello(@CookieValue(name = "value") String user){ System.out.println(user); return "hello"; } user = liuyu 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 曲线救国,解决spring-boot2.0.6中webflux无法获得请求IP的问题
- 2分钟获得HTTPS证书
- 微软Azure宣布获得OpenBSD支持
- Python 获得命令行参数的方法
- Docker容器如何获得自己的名字
- golang中如何获得函数的函数名
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。