急!急!!急!!!获取表单数据类型问题!

dellasol 2009-05-27 09:15:34
前台表单代码

<form id="form2" name="form2" method="post" action="Comnum">
<div align="center">
<table width="300" border="1">
<tr>
<td>
<div align="right">
查询机器号:
</div>
</td>
<td>
<div align="left">
<label>
<input name="comnum" type="text" id="comnum" />
</label>
</div>
</td>
</tr>
<tr>
<td>
 
</td>
<td>
<label>
<div align="left">
<input type="submit" name="Submit" value="确定" />
<input type="reset" name="Submit2" value="清空" />
</div>
</label>
</td>
</tr>
</table>
</div>
</form>


servlet代码
String comnum=request.getParameter("comnum");
OrderitemDao otdao = new OrderitemDao();
ArrayList<Orderitem> otlist = otdao.FindByComnum(Integer.parseInt(comnum));
System.out.println(otlist.size());
request.removeAttribute("otlist");
request.setAttribute("otlist", otlist);
request.getRequestDispatcher("planlist.jsp").forward(request, response);


现在有个问题,提交数据的时候,有的comnum不能Integer.parseInt(comnum)
报java.lang.NumberFormatException: Infinite or NaN异常
我用Debug检测到提交上来的数据在转换类型的时候编程char[]了
但并不是所有提交的数据都是这样
比如我提交1的时候,程序运行正常
但我提交2的时候,程序就报刚才的异常

请问这是怎么回事呀?请大家帮帮忙。谢谢。。

没有分了,请大家将就一下,闪电结贴
...全文
375 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kbyst 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dellasol 的回复:]
跟dao里的没关系,不是所有的不能查询,是个别传进来的参数不能转换类型
例如 我输入1
就能正常转换并查询出结果
输入2
就出现不能转换格式
[/Quote]

实在难以理解楼主

想知道哪的原因,很简单

ArrayList<Orderitem> otlist = otdao.FindByComnum(Integer.parseInt(comnum));

把 Integer.parseInt(comnum) 这句放在上句话的前面


System.out.print(Integer.parseInt(comnum));
ArrayList<Orderitem> otlist = otdao.FindByComnum(Integer.parseInt(comnum));


自己看哪句报错!!!!!!






dellasol 2009-05-27
  • 打赏
  • 举报
回复
跟dao里的没关系,不是所有的不能查询,是个别传进来的参数不能转换类型
例如 我输入1
就能正常转换并查询出结果
输入2
就出现不能转换格式
adown 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kbyst 的回复:]
引用 6 楼 dellasol 的回复:
再顶,没有达人能解决这个问题吗


......

把otdao.FindByComnum(Integer.parseInt(comnum))
这个方法贴出来

SQL也贴出来
[/Quote]
同意楼上! 估计肯定有问题在这两个点
kbyst 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dellasol 的回复:]
再顶,没有达人能解决这个问题吗
[/Quote]

......

把otdao.FindByComnum(Integer.parseInt(comnum))
这个方法贴出来

SQL也贴出来
dellasol 2009-05-27
  • 打赏
  • 举报
回复
再顶,没有达人能解决这个问题吗
dellasol 2009-05-27
  • 打赏
  • 举报
回复
自己顶起来
kbyst 2009-05-27
  • 打赏
  • 举报
回复
otdao.FindByComnum(Integer.parseInt(comnum));
看看这个方法FindByComnum()

参数是怎么定义数据类型的

你的另一个贴子里错误信息有
关于java.math.BigDecimal的信息

好像是损失精度的问题
qsrock 2009-05-27
  • 打赏
  • 举报
回复
你提交过去的是什么东西啊!打印下看看!
dellasol 2009-05-27
  • 打赏
  • 举报
回复
没有空格的,我用debug检测的时候显示的是comnum变成char[]了
而这个数组里边的值是我传上来的那个参数
xnjnmn 2009-05-27
  • 打赏
  • 举报
回复
比如我提交1的时候,程序运行正常
但我提交2的时候,程序就报刚才的异常
可能是有空串
String comnum=(String)request.getParameter("comnum").trim();

81,094

社区成员

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

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