当前位置: 代码迷 >> Java Web开发 >> Sting部类数据装换为int类型出错
  详细解决方案

Sting部类数据装换为int类型出错

热度:113   发布时间:2016-04-12 23:22:54.0
Sting类型数据装换为int类型出错
我在用easyUI分页时,从前台传到后台page和rows两个参数。然而我将该值转换为int类型时出错,求解答。付源码(红色部分为出错部分):


String type=request.getParameter("type");
String p=request.getParameter("page");
String r=request.getParameter("rows");

int page=Integer.valueOf(p);
int rows=Integer.valueOf(r);


以下是出错信息:
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:417)
at java.lang.Integer.valueOf(Integer.java:554)
at tk.tangchao.servlet.JsonGenerate.doPost(JsonGenerate.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
javaweb easyUI Sting int j2ee

------解决方案--------------------
用parseInt()试试。
int page = Integer.parseInt(p);
int row = Integer.parseInt(r);
------解决方案--------------------
java.lang.NumberFormatException: null
已经提示你了,你传入的是null,而null是不能被转为int的
------解决方案--------------------
异常提示的很清楚,你传入方法的Integer.valueOf的字符串==null
------解决方案--------------------

if(null!=p&&!"".equals(p)){
int page=Integer.valueOf(p);
}
if(null!=r&&!"".equals(r)){
int rows=Integer.valueOf(r);
}
判断下就好,看下api里面的异常说明就明白了,不为空转换

------解决方案--------------------
确定p和r不为null,一般在做转换的时候做个不为空的判断,避免异常
------解决方案--------------------
因为你获得的p和r的值可能是null,而Integer.valueOf()类型转换是不能转换null的
------解决方案--------------------
前面先加一个不为空的判断再去进行转换,空异常就是这么出现的。。。
------解决方案--------------------
楼主debug一下吧,看看是不是你的
String p=request.getParameter("page");
String r=request.getParameter("rows");
有值,顺便在看看你的
String type=request.getParameter("type");
有值没有。
------解决方案--------------------
引用:
用parseInt()试试。
int page = Integer.parseInt(p);
int row = Integer.parseInt(r);