SpringBoot学习之-通过一个请求可以获得多少参数

栏目: Java · 发布时间: 6年前

内容简介:之前在该注解主要用法有两种,示例如下如果我们想获取全部的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
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google API开发详解

Google API开发详解

江宽,龚小鹏等编 / 电子工业 / 2008-1 / 59.80元

《Google API开发详解:Google Maps与Google Earth双剑合璧》从易到难、由浅入深、循序渐进地介绍了Google Maps API和Google Earth API的开发技术。《Google API开发详解:Google Maps与Google Earth双剑合璧》知识讲解通俗易懂,并有大量的实例供读者更加深刻地巩固所学习的知识,帮助读者更好地进行开发实践。 《Go......一起来看看 《Google API开发详解》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码