读书人

java.lang.NumberFormatException: Fo

发布时间: 2013-01-11 11:57:35 作者: rapoo

java.lang.NumberFormatException: For input string: "id"
<ul>
<c:forEach items="${requestScope.pageInfo.pageData}" var="yhaction">
<li><a href="detailYhAction.do?id=${yhaction.id }">${yhaction.title}</a> </li>
</c:forEach>
</ul>
jsp代码如上,我的实体类YhAction的id是Integer型的,我想遍历输出全部YhAction,然后根据id查看详细情况。
打开这个页面的时候报错,信息如下:(我感觉是莫名奇妙的错误,项目中我有很多相似的页面就没有报错,唯独这个,郁闷啊!!!)。
org.apache.jasper.JasperException: java.lang.NumberFormatException: For input string: "id"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor

请各位大侠帮忙,不胜感激!!!
[解决办法]
非数字转换错误,有没有用到Integer.parseInt(s),如果s为非数字字符串
[解决办法]
你的id是否含有空格,trim()后再转
[解决办法]
页面中的id不是Integer类型
[解决办法]
感觉问题不在你贴的代码中
[解决办法]
把你贴的那段代码去了可以运行不?先确定是不是这段有问题
[解决办法]
这问题应该很好找。。
断点跟踪。从你的detailYhAction开始设置个断点,看查出的yhaction中的id
[解决办法]
把id打印出来看取到的是什么?
[解决办法]
设置断点是个很好解决问题的办法。。。

java.lang.NumberFormatException: For input string: "id"

从这一点我可判断出来 你是 转型出错的。。。

我建议你在 jsp 面上打印一下<% int = request.getpara...id %>

..自己试一下 看能不能拿出来id。。。。。。

[解决办法]
应该是提示类型转换错误,你看一下输出的id是什么,

再测试一下吧
[解决办法]


${yhaction.id }链接传递过去还是字符串的,如果用Integer接收就是数字的
如果${yhaction.id }里面有空格和其他字符可能造成转换错误

[解决办法]
引用:
设置断点是个很好解决问题的办法。。。

java.lang.NumberFormatException: For input string: "id"

从这一点我可判断出来 你是 转型出错的。。。

我建议你在 jsp 面上打印一下<% int = request.getpara...id %>

..自己试一下 看能不能拿出来id。。。。。。

+1
[解决办法]
如果不出意外,代码出错在detailYhAction.do里。
检查一下你转化id为数字的这一部分的代码

我怀疑你写的是Integer.parseInt("id");
而不是变量id
[解决办法]
引用:
<c:forEach items="${yhactions}" var="yhaction">
<li><a href="detailYhAction.do?id=${yhaction.id }">${yhaction.title}</a> </li>
</c:forEach>
比如说像上面这样。用<% int id= request.getParameter("id") %>,能娶到吗,……


哥们你可以现在后台 把你的requestScope.pageInfo.pageData 取出来第一个 总可以吧。。。也就是 下标为 0 的。。那个对象取出来。。然后 用这个对象不能渠道 ID 么??



你在setattribute 不就可以了。。在页面上 getattribute、、、、啊。。。

这个问题不难 。。。。相信你能解决的。。。
[解决办法]
异常是页面报出来的啊。

我还是怀疑你贴出来的代码没有错,错在另外的地方
[解决办法]
强转为相应的 格式, LZ的 结贴率? 有点WS哦!
[解决办法]

引用:
<ul>
<c:forEach items="${yhactions2}" var="yhaction">
<li>怎么回事???</li>
</c:forEach>
</ul>
这样就好了,页面显示结果如下,数据库有5条记录:


* 怎么回事???
* 怎么回事???
* 怎么回事???
* 怎么回事???
* 怎么回事???……


不要着急。。呵呵。。

这说明什么 。。说明你这个对象里面有值。。。呵呵。。

那就是 你的 vo 里面了。。看看 有没有相应的字段。。有没有setter getter 方法。。。。


[解决办法]
越来越接近真相了
[解决办法]
vo发出来看看
[解决办法]
吧el换成
<%=yhaction.getId() %>
这样试试
[解决办法]
引用:
吧el换成
<%=yhaction.getId() %>
这样试试

<c:forEach items="${yhactions2}" var="yhaction">
<li><%=yhaction.getId() %></li>
</c:forEach>
[解决办法]
在页面强制转换成String 你将Integer 赋值于String 肯定错啊 url传递的都是字符串
[解决办法]
硬是找不到问题的话换个标签试试

<%@taglib prefix="s" uri="/struts-tags"%>

<s:iterator value="#request.yhactions2" var="yhaction" >
<li>${yhaction.id}</li>
</s:iterator>
[解决办法]
引用:
org.apache.jasper.JasperException: An exception occurred processing JSP page /allYhActions.jsp at line 37

34: <div class="class_information">
35: <ul>
36: <c:forEach items="${yhacti……



那你就在后台。。把你的对象打印一下。。看看能不能打印出来。。。。

的requestScope.pageInfo.pageData 取出来第一个 总可以吧。。。也就是 下标为 0 的。。那个对象取出来。。然后 用这个对象不能渠道 ID 么??

你在setattribute 不就可以了。。在页面上 getattribute、、、、啊。。。

这个问题不难 。。。。相信你能解决的。。。

。。。。还有就是断点 。。别忘了设置。。用它来解决问题。。很快的。。。。。
[解决办法]
别用标签了。。。直接jsp上。。靠!
没看你全部代码,光jsp还真搞不清你哪错了

<%
//看你吧yhactions2放在哪的若是session中就session.getAttrbute(yhactions2);
List list = (List) request.getAttrbute(yhactions2);

for(Yhaction yhaction:list) {%>
<li> <%=yhaction.getId() %> </li>
<%}%>

这样还不行的话就不是jsp页面的问题了
[解决办法]
该回复于2010-07-29 19:42:57被版主删除


[解决办法]
我的yhactions2这个List是有值的,怎么就遍历出错呢???什么yhaction2.id,yhaction2.title都报错啊
[解决办法]


你遍历yhactions2这个List,取值取的是yhactions里面的值。

[解决办法]
引用:
引用:
别用标签了。。。直接jsp上。。靠!
没看你全部代码,光jsp还真搞不清你哪错了

<%
//看你吧yhactions2放在哪的若是session中就session.getAttrbute(yhactions2);
List list = (List) request.getAttrbute(yhactions2);

for(Yh……


List<YhAction> list = (List) request.getAttribute("yhactions2");

实事证明了!!
你在action中放在yhactions2中的类型根本不是YhAction类型。
找到你的action中 request.setAttribute("yhactions2","这里放的到底是上面");
仔细检查下吧!你放进yhactions2中的对象的id是String类型的,而YhAction得id是int类型的。
因此会导致你的一系列错误!
太粗心了哦!!
[解决办法]
找到你的action中 request.setAttribute("yhactions2","这里放的到底是什么");
[解决办法]
....................

读书人网 >Java Web开发

热点推荐