问题描述:
在测试项目时,跳转页面查看一级分类下的书籍信息,发现页面报错500,提示信息为:
java.lang.NumberFormatException: null
报错页面的URL为:
http://localhost:8888/estore/listBooks.action?category_id%20=%201&type=parent
报错代码定位到一下这行代码:
Integer categoryId =
Integer.parseInt(request.getParameter("category_id"));
相关的jsp代码为:
<a href="listBooks.action?category_id = ${book.category.parent.id }&type=parent">${book.category.parent.name }</a> >
<a href="listBooks.action?category_id = ${book.category.id }&type=child">${book.category.name }</a>
原因分析:
通过定位的错误代码,说明出错位置是由于servlet在获取请求参数的时候,并没有如期获取到category_id的值,获取到的是空值。
通过观察URL发现,本应该为category_id=1
,变成了category_id%20=%201
导致请求参数错误。
解决方案:
在jsp中把 category_id = ${book.category.parent.id }
中category_id 与 = 之间、= 与el表达式之间的空格删除,问题解决。