Я пытаюсь написать контроллер для редактирования сведений о пользователе или сотруднике, которые уже присутствуют в моей базе данных.
Когда пользователь нажимает кнопку «Изменить», данные из базы данных извлекаются, и результат отображается втекстовое поле.Далее я хочу отредактировать эти данные и сохранить их, нажав «сохранить».
Я делаю следующее:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="<c:url
value="/resources/css/table.css"/>">
</head>
<body>
<table border="1" align ="center">
<thead><tr>
<th>Sr No</th>
<th>empid</th>
<th>emptype</th>
<th>firstname</th>
<th>lastname</th>
<th>phone</th>
<th>view</th>
<th>edit</th>
<th>set permission</th>
<th>assigned assets</th>
</tr>
</thead>
<c:forEach var="emp" items="${listEmp}"
varStatus="status">
<tr>
<td>${status.index + 1}</td>
<td>${emp.empid}</td>
<td>${emp.emptype}</td>
<td>${emp.firstname}</td>
<td>${emp.lastname}</td>
<td>${emp.phone}</td>
<td> <a
href="view/${emp.empid}">view</a></td>
<td> <a
href="edit/${emp.empid}">edit</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
Мой бэкэнд обрабатывает это так:
@RequestMapping(value="/edit/{id}")
public ModelAndView editdetails(HttpServletRequest request,
HttpServletResponse response,@PathVariable("id")long id) {
List<Editdetails> listshow= userdao.editdetails(id);
ModelAndView mav=new ModelAndView("editdetails");
mav.addObject("edit",new Editdetails());
mav.addObject("listshow",listshow);
return mav;
}
Вот внешний интерфейс: editdetails.jsp
<%@ taglib prefix="form"
uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="<c:url
value="/resources/css/style.css"/>">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
</head>
<title>editform</title>
<body>
<c:forEach var="emp" items="${listshow}" varStatus="status">
<form:form id="editform1" action="edit12" modelAttribute="edit"
method="post">
<table align="left">
<tr>
<td>
<form:labelpath="usertype">Usertype</form:label>
</td>
<td>
<form:input path="usertype" name="usertype" id="usertype"
value="${emp.usertype}" />
</td>
</tr>
<tr>
<td>
<form:label path="empid">empid</form:label>
</td>
<td>
<form:input path="empid" name="empid" id="empid"
value="${emp.empid}" />
</td>
</tr>
<tr>
<td>
<form:label path="firstname">FirstName</form:label>
</td>
<td>
<form:input path="firstname" name="firstname" id="firstname"
value="${emp.firstname}"/>
</td>
</tr>
<tr>
<td>
<form:label path="lastname">LastName</form:label>
</td>
<td>
<form:input path="lastname" name="lastname" id="lastname"
value="${emp.lastname}"/>
</td>
</tr>
<tr>
<td>
<form:label path="email">Email</form:label>
</td>
<td>
<form:input path="email" name="email" id="email"
value="${emp.email}" />
</td>
</tr>
<tr>
<td>
<form:label path="address">Address</form:label>
</td>
<td>
<form:input path="address" name="address" id="address"
value="${emp.address}" />
</td>
</tr>
<tr>
<td>
<form:label path="phone">Phone</form:label>
</td>
<td>
<form:input path="phone" name="phone" id="phone"
value="${emp.phone}" />
</td>
</tr>
<tr>
<td>
<form:label path="date">date</form:label>
</td>
<td>
<form:input type="date" path="date" name="date" id="date"
value="${emp.date}"/>
</td>
</tr>
<tr><td></td>
<td>
<input type = "submit" value="save" />
</td>
</tr>
</table>
</form:form>
</c:forEach>
</body>
</html>
Я могу просмотреть детали, но когда я нажимаю на сохранение, он показывает, что запрос, отправленный клиентом, был синтаксически неверным.
@RequestMapping(value = "/edit12", method = RequestMethod.POST)
public ModelAndView edituse(HttpServletRequest request, HttpServletResponse response,@ModelAttribute("edit")Editdetails edit) throws InterruptedException {
ModelAndView mav= new ModelAndView("admin");
//here i will call some service to save update
return mav;
}