Jsp页面java.lang.NumberFormatException: For input string: ““错误解决办法

Jsp页面报Java.lang.NumberFormatException: For input string: ""错误解决办法

昨天写代码遇到一个错误,在日志和控制台报一个错误说jsp页面一个出现java.lang.NumberFormatException
当看到这个错误我感觉很可能就是字符串转换成数字类型出现的问题。一般都是String转Long、Integer时,出现转换异常

一般错误原因:

第一种情况
例如前端在传给我数据时时,应该传字符串形式的数字(例如:1),结果传的是一个非数字形式的字符串,这时候,如果后台处理参数时,调用Long.ValueOf(String)或者Long.parseLong(String)方法进行数据类型转换,就会报异常。

因为在调用Long.ValueOf(String)或者Long.parseLong(String)方法进行数据类型转换时,字符串内不能包含除数字之外的字符。

第二种情况
因为字符串的长度也应该有限制,如果超出最大长度也会报异常,要注意字符串形式的数字不能超过19位,因位Long类型的最大值位Long.MAX_VALUE = 9223372036854775807,大于这个值都会出错。

  • 但是检查后台不是这个原因导致的,这时候就要考虑是什么地方的原因了,很显然接下来就应该考虑Jsp页面

错误详情:
错误详情

错误详情

解决办法

  • 当你确定自己后台代码没问题时,多半都是jsp页面出现错误,后来找了半天没发现错误,重写了一下jsp页面的forEach循环就运行正常了, 在仔细对照jsp页面代码之后,发现是自己粗心的错误。因为在model传到页面的的数据是一个List的对象集合,而我直接使用List去调用对象的属性,导致出现了这个异常。因为我已经遍历了对象集合,但是却直接使用List集合来调用对象了,需要将遍历得到的对象去调用对象的属性。

出现错误的位置
错误页面

正确代码
正确页面

感悟

当大家遇到这个错误且确定后台页面没问题时,多半都是自己的jsp页面出现问题了,可以检查一下自己的jsp页面。


版权声明:本文为weixin_44001429原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。