报错信息
前端
后端
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的封装类,可以为空值