2017-02-05 6 views
-1

Я пытаюсь обновить количество поездок сотрудников.
В приведенной ниже таблице я получаю список сотрудников и количество поездок, выполняемых каждым, и поле ввода для обновления этого номера. Тем не менее, я получаю error 500 null.
Может ли кто-нибудь помочь мне решить эту проблему? большое спасибо.Поле таблицы обновления файла java jsp в базе данных

внутри Controller.java

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

    .... 

      } else if (methode.equals("post") && action.equals("/updateemployees")) { 
       doUpdateEmployee(request, response); 
    .... 


     private void doUpdateEmployee(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 


       int tripsInitialvalue = Integer.valueOf(request.getParameter("nbTrips")); 
[line: 177]  int id = Integer.valueOf(request.getParameter("id")); 


       EmployeeDAO.addTrips(id,tripsInitialvalue); 


       doEmployees(request, response); 

      } 

внутри моей EmployeeDAO.java

public static Employee addTrips(int id, int tripsToAdd) { 
     EntityManager em = GestionFactory.factory.createEntityManager(); 
     Employee employee = em.find(Employee.class, id); 
     em.getTransaction().begin(); 
     int tripsInitialvalue = employee.getNbTrips(); 
     employee.setNbTrips(tripsInitialvalue + tripsToAdd); 
     em.getTransaction().commit(); 
     em.close(); 
     return employee; 
    } 

и мой employees.jsp файл:

<form method="post" action="<%= getServletContext().getContextPath()%>/do/updateemployees"> 
<table> 
    <tr> 
     <th>Employee ID</th> 
     <th>Name</th> 
     <th>Number of Trips</th>   
     <th>Edit Trips</th> 
    <tr> 
<% for (Employee employee : employees) {%> 
    <tr> 
     <td><%=employee.getId()%></td> 
     <td><%=employee.getName()%></td>   
     <td><%=employee.getNbTrips()%></td>  
     <td><input type="number" name="nbTrips" size="2" value="<%=employee.getNbTrips()%>"></td> 
    </tr> 
<% } %> 
</table> 
<input type="submit" value="Update"/> 
</form> 
Журналошибки:
Etat HTTP 500 - null 
message null 
java.lang.NumberFormatException: null 
    java.lang.Integer.parseInt(Unknown Source) 
    java.lang.Integer.valueOf(Unknown Source) 
    projet.controleur.Controleur.doUpdateEmployee(Controller.java:177) 
    projet.controleur.Controleur.doGet(Controller.java:109) 
    projet.controleur.Controleur.doPost(Controller.java:69) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
+0

Опубликовать трассировку стека ошибок и соответствующие строки кода. –

+0

@SasiKathimanda, пожалуйста, просмотрите обновленный вопрос, добавьте журнал ошибок и номер строки в контроллере. – passion

ответ

1

так из деталей ошибок видно, что valueOf пытается разобрать нуль в code.you не может разобрать «нулевой» в целом.

if(request.getParameter("id") != null) { 

int id = Integer.valueOf(request.getParameter("id")); 
EmployeeDAO.addTrips(id,tripsInitialvalue); 

} else { 
    //decide what to do when id is null 
} 

EDIT: Чтобы получить значения всех текстовых полей использовать request.getParameterValues ​​('nbTrips'), это вернет все значения для элементов с таким же '' nbTrips

String[] nbTrips = request.getPrameterValues('nbTrips') 

вернется все значения текстового поля с именем «nbTrips» в массив строк nbTrips, которые вы можете выполнять итерации и получать каждое значение из textBox.

+0

спасибо за предложение, предыдущая ошибка исчезла. но когда я изменяю номер и нажимаю на обновление, значение не обновляется. – passion

+0

, потому что он перескакивает на другую часть и ничего не происходит. что я должен сделать, чтобы обновить поле? – passion

+0

, если он перескакивает в другое, означает, что он по-прежнему равен нулю, сохраните отладку и посмотрите, какое значение вы получаете по req.getParameter –