首页 新闻 赞助 找找看

jsp:关于java.lang.NumberFormatException: null问题

0
悬赏园豆:80 [已关闭问题] 关闭于 2018-02-06 09:53
  <body>
  <%    request.setCharacterEncoding("utf-8");
        AssetName art=new AssetName();
        art.setAsId(Integer.parseInt(request.getParameter("eid")));
        art.setUID(request.getParameter("UID"));
        art.setAsnu(request.getParameter("asnu"));
        art.setAsnm(request.getParameter("asnm"));
        art.setAste(request.getParameter("aste"));
        art.setSpec(request.getParameter("spec"));
        IAsset ad=new AssetDao();
        if(ad.update(art)>0) 
            response.sendRedirect("Home.jsp");
            else{
                out.println("<script>alert('修改失败');location='Edit.jsp' </script>");
            }
        %>
  </body>

上面这份是修改控制,

String eid = request.getParameter("eid");

                if (eid == null) 
                     response.sendRedirect("Home.jsp");
               else {
                         IAsset ad=new AssetDao();
                      AssetName art=ad.getInfo(Integer.parseInt(eid));

上面这份是从修改页,Home.jsp中传入的

我是知道这里的eid应该是传到了Null,但是debug显示在没有执行这一行之前是有显示到eid=32,也就是在修改的页面传了过来才对。

art.setAsId(Integer.parseInt(request.getParameter("eid")));

这里给出的报错是以下,

复制代码
java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at org.apache.jsp.EditControl_jsp._jspService(EditControl_jsp.java:105)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
复制代码

个人技术有限,不知道要怎么改,折腾了好多天一直传不到这个值也是醉了,对了,删除倒是可以直接传过去,没有影响,会不会是dao写错了?

补充,由按钮触发获得eid,且能够在Edit.jsp中获得,只是在执行控制的时候Debug返回了java.lang.NumberFormatException: null 相关错误,而且debug过程中,执行art.setAsId前是能获得eid的值。

 onclick="location.href='Edit.jsp?eid=<%=art.getAsId()%>'"
jsp
AzusaMed的主页 AzusaMed | 初学一级 | 园豆:130
提问于:2018-01-29 10:25
< >
分享
所有回答(2)
0

你的String eid值是什么?打印到控制台看看。

ckx0709 | 园豆:414 (菜鸟二级) | 2018-01-29 12:21

这里我刚刚试了一下没有问题,打印出页面都没有问题,能输出且正确

支持(0) 反对(0) AzusaMed | 园豆:130 (初学一级) | 2018-01-29 14:12

@AzusaMed: 这里应该是个bug。如果时好时坏,eid这个参数你后台最好控制下,或者用一个只能输入数字的控件,或者对控件进行校验然后再传后台,不然,出过来的是字符串的话,你这个错就会再报。

支持(0) 反对(0) ckx0709 | 园豆:414 (菜鸟二级) | 2018-01-29 14:16

@ckx0709: 不是 他对应数据库的值就是Id,所以我在修改控制里用了转换。我上面已经做了判断获得不了这个值的时候返回页面,应该不会是值的问题。

//<%=art.getAsId()%>

支持(0) 反对(0) AzusaMed | 园豆:130 (初学一级) | 2018-01-29 14:20
0

重新设置了控制页专门DEBUG,这次终结一下,EDIT.JSP里没有把传过去值的标签里name=id;之前传过去的是另一个测试值。

AzusaMed | 园豆:130 (初学一级) | 2018-02-06 09:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册