Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter '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怎么办
时间: 2024-03-25 14:38:15 浏览: 245
java解决nested exception is java.lang.OutOfMemoryError Java heap space
5星 · 资源好评率100%
这个错误通常出现在使用 Spring MVC 框架时,当你在控制器方法中使用 Optional 包装类来接收参数时,参数类型为原始类型(比如 int)而不是对象类型(比如 Integer)。这会导致无法将 null 值转换为原始类型,从而引发异常。
为了解决这个问题,你可以将控制器方法中的参数类型改为对象类型。例如,将 int 改为 Integer。这样,即使参数值为 null,也可以正常地转换为对应的对象类型。
另外,你还可以通过在参数前面添加 @RequestParam(required=false) 注解来指定该参数是可选的,这样即使参数值为 null,也不会引发异常。例如:
```java
@RequestMapping("/test")
public String test(@RequestParam(required=false) Integer id) {
// ...
}
```
这样,即使没有传递 id 参数,也不会引发异常。
阅读全文