数据库中的java jsp文件更新表字段

时间:2017-02-05 11:45:03

标签: java sqlite jsp java-ee

我正在尝试更新员工完成的旅行次数。
在下表中,我获取了员工列表和每个员工完成的行程次数,以及更新该号码的输入字段。但是,我得到了error 500 null 有人可以帮我解决这个问题吗?非常感谢。

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)

1 个答案:

答案 0 :(得分:1)

所以从错误的细节来看,很明显valueOf试图解析代码中的 null 。你无法解析&#34; null&#34;到int。

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
}

编辑: 要获取所有文本框的值,请使用request.getParameterValues(&#39; nbTrips&#39;),这将返回具有相同&#39; nbTrips&#39;的元素的所有值。

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

将返回名称为&#39; nbTrips&#39;的所有文本框值。到String数组nbTrips,你可以迭代并从textBox中获取每个值。