首页 > 编程知识 正文

SpringBoot请求参数绑定

时间:2023-11-22 08:45:39 阅读:290124 作者:ZELP

解答:SpringBoot请求参数绑定是指将HTTP请求中的参数与Controller方法的参数绑定起来,使得参数的传递变得简单和方便。下面我们将从多个方面对SpringBoot请求参数绑定进行详细阐述。

一、基本语法

SpringBoot请求参数绑定的基本语法是将HTTP请求中的参数与Controller方法的参数绑定。SpringBoot支持的参数绑定方式有三种:请求参数绑定、请求体参数绑定和路径变量绑定。

1、请求参数绑定

请求参数绑定是指将HTTP请求中的参数与Controller方法的参数绑定起来,以实现参数的传递。通过@RequestParam注解将HTTP请求中的参数与Controller方法的参数进行绑定,即@RequestParam("参数名") String 参数名。

    @GetMapping("/test")
    public String test(@RequestParam("name") String name, @RequestParam("number") int number){
        return "Name:" + name + ",Number:" + number;
    }

2、请求体参数绑定

请求体参数绑定是指将HTTP请求的请求体中的参数与Controller方法的参数绑定起来。通过@RequestBody注解将请求体中的参数与Controller方法的参数进行绑定,即@RequestBody User user。

    @PostMapping("/test")
    public String test(@RequestBody User user){
        return "Name:" + user.getName() + ",Number:" + user.getNumber();
    }

3、路径变量绑定

路径变量绑定是指将HTTP请求中的路径变量与Controller方法的参数绑定起来。通过@PathVariable注解将HTTP请求中的路径变量与Controller方法的参数进行绑定,即@RequestMapping("/test/{name}") public String test(@PathVariable("name") String name)。

二、多种传参方式

SpringBoot请求参数绑定不仅支持基本的数据类型,还支持多种传参方式,包括List、Map和自定义实体类等。

1、List类型的传参

    @GetMapping("/test")
    public String test(@RequestParam("list") List list){
        return "List:" + list.size();
    }

2、Map类型的传参

    @GetMapping("/test")
    public String test(@RequestParam Map map){
        return "Map:" + map.size();
    }

3、自定义实体类的传参

    @PostMapping("/test")
    public String test(@RequestBody User user){
        return "Name:" + user.getName() + ",Number:" + user.getNumber();
    }

三、参数校验

参数校验是指对请求参数进行有效性验证的过程。SpringBoot请求参数绑定支持参数校验。通过在Controller方法参数前添加@Valid注解,并在实体类中使用注解对属性进行校验。

1、在Controller方法参数前添加@Valid注解

    @PostMapping("/test")
    public String test(@Valid @RequestBody User user){
        return "Name:" + user.getName() + ",Number:" + user.getNumber();
    }

2、在实体类中使用注解对属性进行校验

    public class User {
        @NotNull(message = "用户名不能为空")
        private String name;
        @Min(value = 18, message = "年龄必须大于等于18岁")
        private int age;
    }

四、默认值设置

SpringBoot请求参数绑定还支持参数的默认值设置。当HTTP请求中没有传递该参数时,使用默认值。

    @GetMapping("/test")
    public String test(@RequestParam(value = "name", defaultValue = "world") String name){
        return "Hello " + name;
    }

五、小结

通过上述的讲解,我们了解了SpringBoot请求参数绑定的基本语法以及其多种传参方式、参数校验和默认值设置,使得我们在开发中更为方便地进行参数传递和校验。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。