2014-05-06 25 views
0

在這裏,我想出的問題,同時執行類似的更新一些操作,刪除和插入,但其回報與例外中的某些空值親切一些人可以看代碼,如果它的錯誤:java.lang.NumberFormatException:空我

錯誤:

HTTP Status 500 - null 

type Exception report 

message null 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

java.lang.NumberFormatException: null 
    java.lang.Integer.parseInt(Integer.java:454) 
    java.lang.Integer.parseInt(Integer.java:527) 
    Controller.ControllerTest.doGet(ControllerTest.java:48) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs. 

Apache Tomcat/6.0.37 

user.jsp:

<form method="POST" action='ControllerTest' name="frmAddUser"> 

    <jsp:useBean id="users" class="java.util.ArrayList" scope="request" /> 
     <% for(int i = 0; i < users.size(); i+=1) 
     { 
      UseBean user = (UseBean)users.get(i); 
     %> 

     id:<input type="text" name="ID" value="<%=user.getID() %>"><br/> 
     Name:<input type="text" name="Name" value="<%= user.getName() %>"><br/> 
     Password:<input type="text" name="password" value="<%= user.getPassword() %>"><br/> 
     phoneno:<input type="text" name="Phoneo" value="<%= user.getPhoneo() %>"><br/> 
     Emailid:<input type="text" name="Emailid" value="<%= user.getEmailID() %>"> <br/> 

     <%} %> 
     <input type="submit" value="Submit" /> 
    </form> 

listuser.jsp

<body> 
<table border=1> 
<thead> 
    <tr> 
    <th>Id</th> 
    <th>Name</th> 
    <th>password</th> 
    <th>phoneno</th> 
    <th>emailid</th> 
    <th colspan=2>Action</th> 
    </tr> 
</thead> 
<tbody> 
    <jsp:useBean id="users" class="java.util.ArrayList" scope="request" /> 
    <% for(int i = 0; i < users.size(); i+=1) 
    { 
     UseBean user = (UseBean)users.get(i); 
    %> 
     <tr> 
     <td><%= user.getID() %></td> 
     <td><%= user.getName() %></td> 
     <td><%= user.getPassword() %></td> 
     <td><%= user.getEmailID() %></td> 
     <td><%= user.getPhoneo() %></td> 
     <td><a href="ControllerTest?action=edit&userId=<%= user.getID() %>" >Update</a></td> 
     <td><a href="ControllerTest?action=delete&userId=<%= user.getID() %>">Delete</a></td> 
     </tr> 
    <% } %> 
</tbody> 
</table> 
<p> 
<a href="ControllerTest?action=insert">Add User</a> 
</p> 

Controllertest.java:

package Controller; 

import java.io.IOException; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import dao.UserDao; 
import dbBean.UseBean; 

public class ControllerTest extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 
    private static String INSERT_OR_EDIT = "/user.jsp"; 
    private static String LIST_USER = "/listUser.jsp"; 

    private UserDao dao; 

    public ControllerTest() 
    { 
     super(); 
     dao = new UserDao(); 

    } 

    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException 
    { 

     String forward = ""; 
     String action = request.getParameter("action"); 
     if (action.equalsIgnoreCase("delete")) 
     { 
      try 
      { 
       int userId = Integer.parseInt(request.getParameter("userId")); 
       dao.deleteUser(userId); 
       forward = LIST_USER; 
       request.setAttribute("users", dao.getAllUsers()); 
      } 
      catch (NumberFormatException ex) 
      { 

       System.out.println("Error occured with during conversion delete"); 
      } 
     } 
     else if (action.equalsIgnoreCase("edit")) 
     { 
      forward = INSERT_OR_EDIT; 
      try 
      { 

       int userId = Integer.parseInt(request.getParameter("userId")); 
       UseBean bean = dao.getUserById(userId); 
       request.setAttribute("user", bean); 

      } catch (NumberFormatException ex) 
      { 

       System.out.println("Error occured with during conversion edit"); 
      } 
     } 
     else if (action.equalsIgnoreCase("listUser")) 
     { 
      forward = LIST_USER; 
      request.setAttribute("users", dao.getAllUsers()); 
     } else 
     { 
      forward = INSERT_OR_EDIT; 
     } 
     RequestDispatcher view = request.getRequestDispatcher(forward); 
     view.forward(request, response); 

    } 

    protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException 
    { 

     try 
     { 
      UseBean bean = new UseBean(); 
      bean.setName(request.getParameter("Name")); 
      bean.setPassword(request.getParameter("password")); 
      bean.setPhoneo(request.getParameter("Phoneo")); 
      bean.setEmailID(request.getParameter("Emailid")); 
      String userid = request.getParameter("ID"); 
      if (userid == null || userid.isEmpty()) 
      { 
       dao.addUser(bean); 
      } else 
      { 
       bean.setID(Integer.parseInt(userid)); 
       dao.updateUser(bean); 
      } 
      RequestDispatcher view = request.getRequestDispatcher(LIST_USER); 
      request.setAttribute("users", dao.getAllUsers()); 
      view.forward(request, response); 

     } 

     catch (Exception e) 
     { 
      e.printStackTrace(); 
      System.out.println("erro occuring in update code"); 
     } 

    } 
} 
+0

確定用戶ID是一個有效的數字? –

+0

除了已經提到的「Integer.parserInt」問題。參數是拼寫「userid」還是「userID」? – SubOptimal

+0

刪除操作工作,但沒有更新,並插入價值我更新我的文章 – user3607180

回答

6

你得到一個NumberFormatException異常,如果不通過有效的數量的Integer.parseInt()

int userId = Integer.parseInt(request.getParameter("userid")); 

嘗試打印的request.getParameter價值(「userid」)並檢查。

5

你得到試圖將空字符串轉換「」爲整數時NumberFormatException異常...

相關問題