严重: Servlet.service() for servlet UserUpdataServlet threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at org.BookShop.user.UserUpdataServlet.doPost(UserUpdataServlet.java:31)
红色地方的语句如下:int result= new userBean().updateUser(Integer.parseInt(Userid), Password, Sex,  Integer.parseInt(Age), Email, Telphone, Address);updateUser()方法如下:   public int updateUser(int i,String Password,String Sex,int Age,String Email,String Telphone,String Address)
   {
   return modify("update Users set   Password='"+Password+"',Sex='"+Sex+"',Age='"+Age+"',Email='"+Email+"',Telphone='"+Telphone+"',Address='"+Address+"' where Userid="+i);
}modify()方法如下:public int modify(String sql){
int result=0;
Statement st=null; try {
st=DBConn.getConnection().createStatement();
result=st.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{

try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

解决方案 »

  1.   

    Userid 或 Age 的值是多少?有一个应当不是数字才会报错
      

  2.   

    Integer.parseInt(Userid)
    Integer.parseInt(Age)
    检查一下Userid和Age的值是否合法。
      

  3.   

    我调用这个方法传值传的是整形
    但servlet里面取控件的name值时要转换
    我的updataservlet代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    String Userid = request.getParameter("Userid");
    String Password = request.getParameter("Password");
    String Sex = request.getParameter("Sex");
    String Age = request.getParameter("Age");
    String Email = request.getParameter("Email");
    String Telphone = request.getParameter("Telphone");
    String Address = request.getParameter("Address");
    int result= new userBean().updateUser(Integer.parseInt(Userid), Password, Sex,  Integer.parseInt(Age), Email, Telphone, Address);
    if (result == 1) {
    request.getRequestDispatcher("admin/updatauserinfo.jsp?currentPage=1").forward(request, response);
    } else {
    request.getRequestDispatcher("error.html").forward(request,response);
    }
    }我感觉好像是userid的值没有取得
    设置断点的时候这个值为null
      

  4.   

    Integer.parseInt(Userid)
    Integer.parseInt(Age)
    调用之前先确定Userid和Age不为null才行。
      

  5.   

    sql 语句是不是写错了,Age不是INT类型的吗
      

  6.   

    我测试的语句:
      int irn2=new userBean().updateUser(7, "updata1111",  "男", 12,"[email protected]", "88888888", "北京");
            System.out.println(irn2);
    最后打印出的结果为1,说明sql语句没问题啊
      

  7.   


    那就查查这个值为什么为null,从你的程序逻辑来看,userid为null是错误的case
      

  8.   

    显然是userid为null 或 age为null报的错,就是说没有从request里取得这2个中的某个的值。