在JSP中 int cardidint =Integer.valueOf(request.getParameter("cardid")); 运行说出现数字格式异常

这是我jsp中的代码:<%intcardidint=Integer.valueOf(request.getParameter("cardid"));System.out.... 这是我jsp中的代码:
<%
int cardidint =Integer.valueOf(request.getParameter("cardid"));
System.out.print("卡号 为:"+cardidint);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=eatery;user=sa;password=sasa;");
Statement stmt = conn.createStatement();
String sql="select cardID,name,balance from card where cardID='"+cardidint+"'";
System.out.print("卡号验证成功");
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
session.setAttribute("cardid",cardidint);
System.out.println("session中的cardid:"+cardidint);

运行结果(部分):
卡号 为:2230卡号验证成功实数i=4卡号 为:2555卡号验证成功session中的cardid:2555
2011-5-27 20:41:01 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:417)
at java.lang.Integer.valueOf(Integer.java:554)
at org.apache.jsp.Checkcard_jsp._jspService(Checkcard_jsp.java:98)
这是前一个JSP页面中的HTML代码
<th width="276" scope="col"><form name="cardidform" method="post" onSubmit="return Checkcard()"action="Checkcard.jsp">
<p>
<label><span class="STYLE1">卡号 </span>
<input type="text" name="cardid" width="180" height="35">
</label>
</p>
<p> </p>
<p> </p>
<p>
<input name="Submit" type="Submit" class="STYLE1" value="确定">
</p>
展开
 我来答
ydw85
2011-05-27
知道答主
回答量:18
采纳率:0%
帮助的人:21.6万
展开全部
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:417)
提交很明显,数字转换错误,不能转换成Integer

这个是由于提交的字符串值为空串,或者其他不可转换为int的。建议先做验证,并在转换处加上try...catch

如:
int cardidint ;
try{
cardidint = Integer.valueOf(request.getParameter("cardid").trim());
}catch(Exception e){
System.out.println(“提交的cardid错误。”);
....
}
追问
试过了,结果就是页面转换不过去,而且页面元素都没有了。控制台打印出异常信息。
追答
一样的异常吗?异常在哪行?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szg176976970
2011-05-28 · TA获得超过388个赞
知道小有建树答主
回答量:1322
采纳率:0%
帮助的人:480万
展开全部
出错的页面你并没有给出来,所以猜测:Integer.java中parseInt的方法应该类似如下int a=Integer.parseInt("2555");
System.out.println(a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcm475800568
2011-05-27 · TA获得超过114个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:84.7万
展开全部
cardid没有传过来啊 报null了
cardidint不能转换null
更多追问追答
追问
可是从运行结果看,打印出来是有值的。。2555,为什么cardid传不过来呢?
我再补充一下前面一个JSP中一段HTML代码:
追答
int  cardidint =Integer.valueOf(request.getParameter("cardid"));
你用Integer。parseInt试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙云饮雪
2011-05-30
知道答主
回答量:16
采纳率:0%
帮助的人:5.2万
展开全部
在转换之前先对cardid进行验证 再传送过去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兰色精彩
2011-05-30
知道答主
回答量:46
采纳率:0%
帮助的人:16.9万
展开全部
你的jsp页面的编码方式是什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式