action里有这样一句代码来获得JSP页面表单里面的值
int state = Integer.parseInt(request.getParameter("carstate"));
异常错误:
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.valueOf(Integer.java:553)
Action.carAction.findCarState(carAction.java:135)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
JavaBean.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter
请问String转换这样为啥会有错???
等待解答
如果为空,再进行强制类型转换是要报错的
你打印request.getParameter("carstate")就知道为什么报错了
request.getParameter("carstate");获取的数据为null,类型转报错!!
System.out.println(request.getParameter("carstate"));看是你需要的数值不,是数字的话就可以强转,
不是的话,就会报这错误
1 request.getParameter()如果得到null怎么办
2 得到的不是数字怎么办
看你的错误很有可能就是第二种情况了!
代码要写的健壮,也就是这个道理,不能只为了实现自己的功能而想当然!
为空不能这样转,先判别一下吧
int state = 0;
if(request.getParameter("carstate")!=null){
state = Integer.parseInt(request.getParameter("carstate"));
}
request获取的是值是null吧,这样转换肯定报错啊,
可以这样写: int state =request.getParameter("carstate")==null?0:Integer.parseInt(request.getParameter("carstate"));
如果等于null值,就赋给一个0,不为null的话,就强转,这样程序可以继续运行下去的!
从你的错误上来看 是无法将NULL转化为int!
你看下传递对了没!