Java SpringMVC-如何使用DAO+从JSP表中的数据库编辑数据;服务
我得到了在jsp中创建的可编辑表,它显示了数据库中的整个表,在最后一列的旁边,我得到了“编辑”按钮,它更新了特定的行。问题是,单击“编辑”后,编辑的行不希望更新,并且控制台中会出现任何错误。我做错了什么 控制器:Java SpringMVC-如何使用DAO+从JSP表中的数据库编辑数据;服务,java,mysql,spring,jsp,spring-mvc,Java,Mysql,Spring,Jsp,Spring Mvc,我得到了在jsp中创建的可编辑表,它显示了数据库中的整个表,在最后一列的旁边,我得到了“编辑”按钮,它更新了特定的行。问题是,单击“编辑”后,编辑的行不希望更新,并且控制台中会出现任何错误。我做错了什么 控制器: @RequestMapping(value="/employeelist.html", method = RequestMethod.POST) public ModelAndView editOrDeleteEmployee(Model model, @ModelAttrib
@RequestMapping(value="/employeelist.html", method = RequestMethod.POST)
public ModelAndView editOrDeleteEmployee(Model model, @ModelAttribute("employee") Employee employee, @RequestParam String editEmployee) throws SQLException{
setAppContext();
clinicService.updateEmployee(employee, "2");
List<Employee> employees = clinicService.getAllEmployees();
model.addAttribute("employees", employees);
ModelAndView mstaff = new ModelAndView("EmployeeList");
return mstaff;
}
服务:
public void updateEmployee(Employee employee, String id) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("clinicconfig.xml");
employeeDAO = ctx.getBean("employeeDAO", EmployeeDAOImpl.class);
employee.setName(employee.getName());
employee.setLastName(employee.getLastName());
employee.setGender(employee.getGender());
employee.setPosition(employee.getPosition());
employee.setSalary(employee.getSalary());
employee.setPhoneNumber(employee.getPhoneNumber());
employee.setAddress(employee.getAddress());
employee.setId(employee.getId());
id = employee.getId();
employeeDAO.updateEmployee(employee, id);
}
JSP文件:
<c:forEach items="${employees}" var="employee">
<tr style="font-size: 10">
<td>${employee.id}</td>
<td><div contentEditable='true'>${employee.name}</div></td>
<td><div contentEditable='true'>${employee.lastName}</div></td>
<td><div contentEditable='true'>${employee.gender}</div></td>
<td><div contentEditable='true'>${employee.position}</div></td>
<td><div contentEditable='true'>${employee.salary}</div></td>
<td><div contentEditable='true'>${employee.phoneNumber}</div></td>
<td><div contentEditable='true'>${employee.address}</div></td>
<td><form action="/VirtualClinic/employeelist.html?editEmployee=${employee.id}" method="POST"><input type="submit" value="Edit"/></form></td>
</tr>
</c:forEach>
${employee.id}
${employee.name}
${employee.lastName}
${employee.gender}
${employee.position}
${employee.salary}
${employee.phoneNumber}
${employee.address}
您确定,您在控制器中接收到员工
对象以及员工ID吗?我确定它不为空,在POST方法中,我添加了system.out.prinln(员工)并在控制台中显示了一些内容,其他DAO方法工作正常,因此我认为收到了该对象
<c:forEach items="${employees}" var="employee">
<tr style="font-size: 10">
<td>${employee.id}</td>
<td><div contentEditable='true'>${employee.name}</div></td>
<td><div contentEditable='true'>${employee.lastName}</div></td>
<td><div contentEditable='true'>${employee.gender}</div></td>
<td><div contentEditable='true'>${employee.position}</div></td>
<td><div contentEditable='true'>${employee.salary}</div></td>
<td><div contentEditable='true'>${employee.phoneNumber}</div></td>
<td><div contentEditable='true'>${employee.address}</div></td>
<td><form action="/VirtualClinic/employeelist.html?editEmployee=${employee.id}" method="POST"><input type="submit" value="Edit"/></form></td>
</tr>
</c:forEach>