[英]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.