NumberFormatException异常javaWEB,jsp的EL表达式异常,的解决方法

本文解决了一个JSP页面中出现的异常问题,通过使用forEach循环正确显示了商品图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类似于代码如:

String id=req.getParameter("id");
int ID=Integer.valueOf(id);
String sql="SELECT * FROM commodity WHERE id=? ";
Object[] params={ID};
List<Commodity> list=mySql.Query(sql,params,Commodity.class);
req.setAttribute("Commodity", list);
req.getRequestDispatcher("/WEB-INF/jsp/Certain_commodity.jsp").forward(req, resp);


引用的类Commodity:

@Getter@Setter@ToString
public class Commodity {

String commodity_image;

...

}


代码没有问题

jsp:

${Commodity.commodity_image}

当你访问了此url:

严重: Servlet.service() for servlet jsp threw exceptionjava.lang.NumberFormatException: For input string: "commodity_image" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at javax.el.ListELResolver.coerce(ListELResolver.java:163) at javax.el.ListELResolver.getValue(ListELResolver.java:51)

...

它报了一个字符串转int类型的异常

但是网页上出现了:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/Certain_commodity.jsp at line 16

13: <body>
14: 	
15: 		<div class="img">
16: 			<img src="${Commodity.commodity_image}">
17: 		</div>
18: 	<div class="words">
19: 		


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:580)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)

	...
Sql语句没有问题经过测试,id=1或者id="1"都可以执行不报错,那么究竟是哪里错了?


解决方案:


<c:forEach items="${Commodity}" var="Comm">
<div class="img">
<img src="${Comm.commodity_image}">
</div>
</c:forEach>


加一个forEach就可以了,无论你想获取的是一个值也好多个值也罢,只要你attribute的是一个集合那么必须用forEach遍历取到!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值