• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

以后在SpringMvc接受参数的时候,尽量不要使用基本数据类型

武飞扬头像
想喝柠檬茶
帮助5

问题抛出

学新通

Optional int parameter 'currpage' is present but cannot be translated into a null value due to being dec

大意是说 如果参数是非必须的,则会赋值为null,因此参数应该是一个object,它才能接受这个null值。

而上面代码参数currpage的类型 为 int,它接受不了null值。

解决方法:

将int改为对象类型Integer

详解

1、当 controller 方法中的参数类型为基本数据类型时。如果页面提交过来的数据为 null 或 "", 会出现数据转换的异常。
学新通

2、当 controller 方法中的参数类型为基本数据类型的包装类型时,页面传递过的数据可以为 "",null 或无该参数提交。当此方法执行时,该包装类型参数自动设为 null (包装类可以设为 null)。如果被其他方法调用可能抛空指针异常。比如 Controller 方法中存在一个 Long parentId 参数,如果页面没有提交该参数。则 parentId 自动被设置为 null。

注意,如果使用值为 null 的包装类型进行拆包时,会抛空指针异常。当将 parentId (null) 作为参数传递到某方法中时 (该方法中的参数为基本数据类型), 编译时不会抛异常。但是运行时,此包装类型的参数 (null) 会进行拆包,此时会抛空指针异常!此异常为运行时异常。当然,如果直接将此 parentId 与基本数据类型运算,同样也会抛空指针异常。

学新通

总结:
1、如果使用基本数据类型,无法接受 null 值和 "" 值。可能发生数据转换异常;
2、 如果使用包装类型,可以接受 null 值和 ""值,但是可能在参数传递时发生空指针异常。解决办法是在此变量在方法间传递时,全部使用包装类型。这样,此参数可以接收页面传递的"" 或 null 值。这样,调用此参数发生异常时,会在问题位置抛出。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhcehf
系列文章
更多 icon
同类精品
更多 icon
继续加载