SpringBoot接收参数的方式

简介: 本文介绍了Java Spring Boot中处理GET请求的多种方式。可以使用方法参数直接接收,或者通过`@RequestParam`注解指定必传参数。此外,可以用实体类接收多个相关参数,但不能同时使用`@RequestParam`。还可以通过`HttpServletRequest`对象获取参数,或利用`@PathVariable`接收路径变量。对于数组和集合参数,需注意使用`@RequestParam`注解。

1. Get 请求

1.1 以方法的形参接收参数

1.这种方式一般适用参数比较少的情况

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail")
    public Result<User> getUserDetail(String name,String phone) {
        log.info("name:{}",name);
        log.info("phone:{}",phone);
       return  Result.success(null);
    }
}

2.参数用 @RequestParam 标注,表示这个参数需要必传,否则会报错。

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail")
    public Result<User> getUserDetail(@RequestParam String name,@RequestParam String phone) {
        log.info("name:{}",name);
        log.info("phone:{}",phone);
       return  Result.success(null);
    }
}

1.2 以实体类接收参数

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail")
    public Result<User> getUserDetail(User user) {
        log.info("name:{}",user.getName());
        log.info("phone:{}",user.getPhone());
       return  Result.success(null);
    }
}

注:Get 请求以实体类接收参数时,不能用 RequestParam 注解进行标注,因为不支持这样的方式获取参数。

1.3 通过 HttpServletRequest 接收参数

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
    @GetMapping("/detail")
    public Result<User> getUserDetail(HttpServletRequest request) {
        String name = request.getParameter("name");
        String phone = request.getParameter("phone");
        log.info("name:{}",name);
        log.info("phone:{}",phone);
       return  Result.success(null);
    }
}

1.4 通过 @PathVariable 注解接收参数

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail/{name}/{phone}")
    public Result<User> getUserDetail(@PathVariable String name,@PathVariable String phone) {
        log.info("name:{}",name);
        log.info("phone:{}",phone);
       return  Result.success(null);
    }
}

1.5 接收数组参数

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail")
    public Result<User> getUserDetail(String[] names) {
        Arrays.asList(names).forEach(name->{
            System.out.println(name);
        });
       return  Result.success(null);
    }
}

1.6 接收集合参数

springboot 接收集合参数,需要用 RequestParam 注解绑定参数,否则会报错!!

java

复制代码

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {

    @GetMapping("/detail")
    public Result<User> getUserDetail(@RequestParam List<String> names) {
        names.forEach(name->{
            System.out.println(name);
        });
       return  Result.success(null);
    }
}


转载来源:https://juejin.cn/post/7343243744479625267

相关文章
|
1月前
|
前端开发 Java
SpringBoot之数组,集合,日期参数的详细解析
SpringBoot之数组,集合,日期参数的详细解析
29 0
|
1月前
|
XML JavaScript 前端开发
springboot配合Freemark模板生成word,前台vue接收并下载【步骤详解并奉上源码】
springboot配合Freemark模板生成word,前台vue接收并下载【步骤详解并奉上源码】
|
1月前
|
Java
Springboot 使用自定义注解结合AOP方式校验接口参数
Springboot 使用自定义注解结合AOP方式校验接口参数
Springboot 使用自定义注解结合AOP方式校验接口参数
|
1月前
|
前端开发 Java
SpringBoot之自定义注解参数校验
SpringBoot之自定义注解参数校验
27 2
|
1月前
|
Java 微服务 Spring
Spring Boot中获取配置参数的几种方法
Spring Boot中获取配置参数的几种方法
29 2
|
1月前
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
66 0
|
1月前
|
开发框架 Java 开发者
Spring Boot接收参数的多种方式
【4月更文挑战第20天】
68 0
|
1月前
|
JSON 前端开发 Java
SpringBoot之JSON参数,路径参数的详细解析
SpringBoot之JSON参数,路径参数的详细解析
25 0
|
1月前
|
前端开发 Java
SpringBoot之实体参数的详细解析
SpringBoot之实体参数的详细解析
22 0
|
JSON 数据安全/隐私保护 数据格式
SpringBoot中的异常处理与参数校验_2
  兄弟们好,这次来跟老铁交流两个问题,异常和参数校验,在说参数校验之前我们先来说异常处理吧,因为后面参数的校验会牵扯到异常处理这块的内容。   说到异常处理,我不知道大家有没有写过或者遇到过如下的写法。
212 0