簡體   English   中英

java jsp文件更新數據庫中的表字段

[英]java jsp file update table field in database

我正在嘗試更新員工完成的旅行次數。
在下表中,我獲得了員工列表和每個人完成的旅行次數,以及一個用於更新該數字的輸入字段。 但是,我收到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;
    }

和我的雇員.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)

因此,從錯誤詳細信息中可以明顯看出,valueOf 正在嘗試解析代碼中的null 。您無法將“null”解析為 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('nbTrips'),這將返回具有相同 'nbTrips' 的元素的所有值

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

將所有名為“nbTrips”的文本框值返回到字符串數組 nbTrips 中,您可以迭代並從文本框中獲取每個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM