在写项目的时候遇到了一个NumberFormatException异常,错误如下图所示。
在运行界面按F12发现,代码所传的ID并未出现,初步判断是数据传输错误。
部分源代码如下:
<td width="30%" bgcolor="#EEE" align="center">
<br>
<b>您浏览过的商品</b><br>
<c:forEach items="${Toplist}" var="top_list" >
<div>
<dl>
<dt>
<a href="/J10/shopping?id=${top_list.id}&method=findByID"><img src="images/${top_list.picture}" width="120" height="90" border="1"/></a>
</dt>
<dd class="dd_name">${top_list.name}</dd>
<dd class="dd_city">产地:${top_list.city} 价格:${top_list.price} </dd>
</dl>
</div>
</c:forEach>
</td>
为了测试Toplist序列是否获取成功,我在后端中增加了输出语句。
System.out.println("toplist"+myshoppingRepsitory.SelectTop5(ToplistAll));
req.setAttribute("Toplist",myshoppingRepsitory.SelectTop5(ToplistAll));
测试后发现,Toplist列表获取成功,如此可以认为,是存储Toplist时与其他变量发生冲突,导致Toplist的信息不能在前端正常取出。
不过。。。。当我用<c:out>进行页面输出时,显示又正常了,所以上述情况被推翻,只是服务器没有刷新好。
但是总结看来,存在NumberFormatException可以优先考虑所传数字信息是否不对应,仔细检查代码,确保无误。