For input string: "id"报错

35岁退休 2018-06-14 05:07:47
是一个简单地本科javaee ssh的大实验
在菜品页面前台取dishes.id的时候说我的id值类型不对。但是下面有一段展示用户列表的,却没有报错,正常显示。我的菜品页面是粘的用户页面的。后台也都是粘的。为什么菜品页面就有问题
有问题的菜品页面:
<s:iterator value="#session.dishlist"  var="dishes">
<tr>
<td bgcolor="#ffffff" align="center" >
<input type="checkbox" name="boxname" value="${dishes.id}"/>
</td>
<td bgcolor="#ffffff" align="center">
${dishes.id}
</td>
<td bgcolor="#ffffff" align="center">
${dishes.dishname}
</td>
<td bgcolor="#ffffff" align="center">
${dishes.price}
</td>

<td bgcolor="#ffffff" align="center">
<form action="dishes/dish_dishUpdata" method="post" >
<input type="hidden" name="dish.id" value="${dishes.id}" >
<input type="hidden" name="dish.dishname" value="${dishes.dishname}" >
<input type="hidden" name="dish.price" value="${dishes.price}" >
<input type="submit" value="修改" >
</form>
</td>
<td bgcolor="#ffffff" align="center">
<a href="dishes/dish_deleteDish?dish.id=${dishes.id}" onclick="return confirmit()" >删除</a>
</td>

</tr>
</s:iterator>


正常显示的用户页面
<s:iterator value="#session.userlist"  var="users">
<tr>
<td bgcolor="#ffffff" align="center" >
<input type="checkbox" name="boxname" value="${users.id}"/>
</td>
<td bgcolor="#ffffff" align="center">
${users.id}
</td>
<td bgcolor="#ffffff" align="center">
${users.username}
</td>
<td bgcolor="#ffffff" align="center">
${users.password}
</td>

<td bgcolor="#ffffff" align="center">
<form action="users/user_userUpdata" method="post" >
<input type="hidden" name="user.id" value="${users.id}" >
<input type="hidden" name="user.username" value="${users.username}" >
<input type="hidden" name="user.password" value="${users.password}" >
<input type="submit" value="修改" >
</form>
</td>
<td bgcolor="#ffffff" align="center">
<a href="users/user_deleteUser?user.id=${users.id}" onclick="return confirmit()" >删除</a>
</td>

</tr>
</s:iterator>


报错信息
六月 14, 2018 4:47:29 下午 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NumberFormatException: For input string: "id"
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)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:967)
at org.apache.jsp.WEB_002dINF.dishes.dish_005fdishQuery_005fsuccess_jsp._jspx_meth_s_005fiterator_005f0(dish_005fdishQuery_005fsuccess_jsp.java:217)
at org.apache.jsp.WEB_002dINF.dishes.dish_005fdishQuery_005fsuccess_jsp._jspService(dish_005fdishQuery_005fsuccess_jsp.java:158)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

...全文
2288 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
咋又是无满意结帖呢
QWERT4745 2018-06-14
  • 打赏
  • 举报
回复
引用 13 楼 weixin_39487102 的回复:
我把var=“dishes”改成var=“dishes1”就好使了。。这是什么道理啊?是堆栈里已经有dishes了吗?
是不是后台this.dishes也传到前台来了
35岁退休 2018-06-14
  • 打赏
  • 举报
回复
引用 12 楼 stacksoverflow 的回复:
就是你传了个字符串“id”给了Integer,自己查查吧,我下班了。
谢谢大哥
35岁退休 2018-06-14
  • 打赏
  • 举报
回复
我把var=“dishes”改成var=“dishes1”就好使了。。这是什么道理啊?是堆栈里已经有dishes了吗?
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
就是你传了个字符串“id”给了Integer,自己查查吧,我下班了。
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
你的jsp会被编译成java的servlet代码,报错在dish_005fdishQuery_005fsuccess_jsp.java的158,217 拿到这个以下就明白了。 eclipse路径和tomcat路径参照下面 https://blog.csdn.net/Gavid0124/article/details/44935793 https://blog.csdn.net/chosen0ne/article/details/5343609
35岁退休 2018-06-14
  • 打赏
  • 举报
回复
引用 8 楼 stacksoverflow 的回复:
dish_005fdishQuery_005fsuccess_jsp.java的158,217行贴出来 JSP页面上有把字符串值为"id"的,变成Integer的地方。 是jsp,jsp,jsp。
dish_005fdishQuery_005fsuccess_jsp.java的158,217是什么呀。。。。我jsp页面上也没有217行啊。。
QWERT4745 2018-06-14
  • 打赏
  • 举报
回复
先把页面上${dishes.id}的代码注释掉,排除下是dishlist类型不对还是id有问题
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
dish_005fdishQuery_005fsuccess_jsp.java的158,217行贴出来 JSP页面上有把字符串值为"id"的,变成Integer的地方。 是jsp,jsp,jsp。
35岁退休 2018-06-14
  • 打赏
  • 举报
回复
引用 2 楼 sinat_37774909 的回复:
你的value="#session.dishlist"这个对象,返回的是list<dishlist>还是list<Object>额,原因应该你的这个对象返回的是Object,所以没办法用dishlist.id
返回的是List<Dish>
35岁退休 2018-06-14
  • 打赏
  • 举报
回复
引用 1 楼 QWERT4745 的回复:
贴下后台代码,还有实体类中dishes.id和数据库字段的类型是什么
这是我的Action里的代码 这段是报错的[code=java// 菜品查询的方法 public String dishQuery() { this.dishes = this.dishService.queryDish(window); session.put("dishlist", dishes); List<Dish> dishs=(List<Dish>)session.get("dishlist"); System.out.println(dishs.get(1).getId()+"action"); System.out.println(dishs.get(1).getDishName()+"action"); System.out.println(dishs.get(0).getId()+"action"); System.out.println(dishs.get(0).getDishName()+"action"); return SUCCESS; }][/code] 这段是不报错的
// 用户查询的方法
		public String queryUser() {
			this.users = this.userService.queryUser(user);
			session.put("userlist", users);
			return SUCCESS;
		}
m小锤子m 2018-06-14
  • 打赏
  • 举报
回复
后台请用String idStr来接收,然后int id = Integer.parseInt(id);
m小锤子m 2018-06-14
  • 打赏
  • 举报
回复
展示是int到jsl中变string,可以自动转换。。。。获取是从页面到后台,后台从request中取到的只能是String,无法复制给int类型的id,无法自动转换
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
dish_005fdishQuery_005fsuccess_jsp.java的158,217行贴出来
竹子_bamboo 2018-06-14
  • 打赏
  • 举报
回复
你的value="#session.dishlist"这个对象,返回的是list<dishlist>还是list<Object>额,原因应该你的这个对象返回的是Object,所以没办法用dishlist.id
QWERT4745 2018-06-14
  • 打赏
  • 举报
回复
贴下后台代码,还有实体类中dishes.id和数据库字段的类型是什么

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧