最近在做SSH整合, 在实现修改的时候出现这样的一个错误: 
java.lang.NumberFormatException: null 
at java.lang.Integer.parseInt(Integer.java:415) 
at java.lang.Integer.parseInt(Integer.java:497) 
at com.wad.web.action.EditdataAction.execute(EditdataAction.java:38) 
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110) 
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at com.wad.system.EncodingFilter.doFilter(EncodingFilter.java:26) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
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:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
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:286) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Thread.java:619) 我把这个功能的代码贴出来,希望有朋友可以为我解答                 DAO中的代码: 
                      public CompanyBuss getDataById(int cid) throws Exception { 
return (CompanyBuss) this.getHibernateTemplate().get(CompanyBuss.class,new Integer(cid)); 

      
              BO中的代码: 
                          public CompanyBuss getDataById(int cid) throws Exception { 
return addsjdao.getDataById(cid); }               Action中的代码: 
                              public class EditdataAction extends Action { 
private AddSJBoInter editdata; 
public AddSJBoInter getEditdata() { 
return editdata; 

public void setEditdata(AddSJBoInter editdata) { 
this.editdata = editdata; 

public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response) { 
EditdataForm editdataForm = (EditdataForm) form; 
try{ 
int cid = Integer.parseInt(request.getParameter("cid")); 
request.setAttribute("compan", editdata.getDataById(cid)); 
return mapping.findForward("sucess"); }catch(Exception e){ 
e.printStackTrace(); 
  return mapping.getInputForward(); 
} } 

                      JSP页面的代码:                               <body> 
  <body> 
  <center> 
          
    <table border="1"> 
    
<tr> 
    
<th>公司名称 </th> 
<th>公司所属类型 </th> 
<th>公司信息简介 </th> 
<th>修改 </th> 
</tr> 
<logic:present name="editForm" property="list"> 
      <logic:iterate id="item" name="editForm" property="list"> 
      
        <tr> 
            
        <td>${item.cname} </td> 
        <td>${item.ctype} </td> 
        <td>${item.cinfo} </td>  
        <td> <a href="/T4BOSS/editdata.do? cid=${item.cid }">修改 </a> </td> 
        </tr> 
      </logic:iterate> 
    </logic:present> 
  
      </table> </center> 
                      如果成功后的话会跳到这个页面.可是跳不过去 会报那个错误,有些人说和JSP页面传值在Action定义String类型可以  我以前没定义的时候也可以出来  不知道怎么回事  希望高手帮我解决 
                <body> 
    <center> 
  <table> 
  <html:hidden property="cid" value="${compan.cid}"/> 
  <tr> 
    <td>公司名称: <html:text property="cname" value="${compan.cname}"> </html:text> <br> </td> </tr> 
<tr> <td> 
                    公司所属类型: <html:text property="ctype" value="${compan.ctype}"> </html:text> </td> </tr> 
<tr> <td>公司信息简介: <html:textarea property="cinfo" value="${compan.cinfo}"> </html:textarea> <br> </td> 
</tr> </table> </center> 
  </body> 
                                
谢谢了  写详细点

解决方案 »

  1.   

    检查你是不是输入了非数字,还有输入值是否为null
      

  2.   

    int cid = Integer.parseInt(request.getParameter("cid")); cid没有取得为NULL
    你输出下或是debug下就知道
      

  3.   

     
    at com.wad.web.action.EditdataAction.execute(EditdataAction.java:38) 
    错误就是在Action的Cid
      

  4.   

    int cid = Integer.parseInt(request.getParameter("cid")); 
    应该是这句出问题了~~我原来也经常遇到这样的问题~~其实这是写代码不规范的一种表现,改成下面的代码:  
    String cd  = request.getParameter("cid");
    int cid = 0;
    if(cd!=null){
       cid =  Integer.parseInt(cd);  
    }
      

  5.   

    String cd  = request.getParameter("cid");
    int cid = 0;
    if(cd!=null){
       cid =  Integer.parseInt(cd);  
    }
    这样的话可以出来 可是跳到那个页面就是空白的 什么也没有的
      

  6.   

    那就又是别的问题了~~看你后面的页面用到了html标签,标签库导进来没啊