前端传到后台的参数出错,不能转换 present but cannot be translated

报错信息

前端
在这里插入图片描述
后端
在这里插入图片描述
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter ‘b_id’ is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.] with root cause
Servlet.service()用于Servlet【dispatcherServlet】在上下文中的路径【】抛出异常【请求处理失败;嵌套异常为java.lang。存在可选的int参数“b_id”,但由于声明为基元类型,无法将其转换为空值。考虑将其声明为具有根原因的对应基元类型的对象包装器。]

后端代码

@GetMapping
public BasicSentence study(
    @RequestParam(value = "count") int count
    , @RequestParam(value = "b_id",required = false) int b_id){
       
        }

解决办法

把b_id的基本类型int改为integer

原因

因为b_id参数不是必需的,当前端只传count时,b_id为空,所以报出b_id存在,但是能转换为空值的情况,而integer是int的封装类,可以为空值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值