接口请求参数异常之@RequestParam

问题

具体问题如下:

 正确的如下:

 如上两图所示:我们的请求参数是pageNo和pageSize,但是却没有正确显示,则说明我们的接口存在了问题。

分析问题

参数为什么没有正确的显示每页显示条数和当前页数,而是我们的实体类名?查看了一下我们的参数前有一个注解@RequestParam,是不是因为这个注解导致的错误呢?去掉了这个注解,启动后则正确显示了当前所想要的参数!

什么是@RequestParam

要想理解这个问题,则需要将@RequestParam这个注解理解了!

@RequestParam主要用于将请求参数区域的数据映射到我们控制层方法的参数上,他的主要参数如下:

1、value:请求中传入参数的名称,当我们不设置后台接口的value值的时候,则会默认为该变量名。则前端传入的参数名必须为我们的变量名,否则在后台接口中pageNum将接收不到对应的数据

2、required:则说明这个参数是否是必传项。默认的是true,表示请求中一定要传入这个对应的参数,否则会报出404错误,如果我们设置为false的时候,当请求中没有此参数,将会默认为null,然而对于基本数据类型的变量,则必须有值,没有的话,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。

3、defaultValue:参数的默认值,如果在我们的请求中没有同名的参数映射时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}"

还有一种情况,那就是当我们如果在请求中传入多个同名参数,比如:url?userName=dongkai&userName=dog时候,会怎么办?

其实,此时传入的数据格式是:“dongkai,dog”,即多个数据之间使用逗号分隔开就可以,在后台接口中可以使用LIST或者数组类型的变量来接收:

如下:

public String requestparamDemo(@RequestParam(value="list") List<String> list) 
或
public String requestparamDemo(@RequestParam(value="userName") String []  userNames) 


解决问题

通过上面的分析我们讲解完之后,你应该很明白了,此时我们将@RequestParam注解去掉既可以!

今天关于接口请求参数异常之@RequestParam问题讲解到这里。

欢迎大家点击下方卡片关注《coder练习生》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
@RequestParam 和 @NotNull 是两个不同的注解,通常用于后端开发中的参数传递和参数校验。 @RequestParamSpring 框架中的一个注解,用于从请求中获取参数的值。当我们在后端接口中使用 @RequestParam 注解时,Spring 会根据参数名从请求中获取对应的值并赋给方法参数。 例如,假设有一个 GET 请求 /api/user,请求参数为 username,那么我们可以在后端接口中这样使用 @RequestParam 注解来获取该参数的值: ```java @GetMapping("/api/user") public ResponseEntity<User> getUserByUsername(@RequestParam("username") String username) { // 根据用户名查询用户信息 // ... } ``` @NotNull 是 Java 校验框架中的一个注解,用于校验方法参数或字段是否为空。当我们在后端接口中使用 @NotNull 注解时,框架会在执行方法前进行校验,如果方法参数或字段为 null,则会抛出异常。 例如,假设有一个后端接口 createUser,需要传入一个非空的用户名,那么我们可以在方法参数上使用 @NotNull 注解进行校验: ```java @PostMapping("/api/user") public ResponseEntity<String> createUser(@NotNull @RequestParam("username") String username) { // 创建用户 // ... } ``` 这样,在调用 createUser 接口时,如果未传入用户名或用户名为空,则会抛出异常。 总结: @RequestParam 用于从请求中获取参数的值,而 @NotNull 用于校验方法参数或字段是否为空。它们在后端开发中常用于参数传递和参数校验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值