Witam, nie wiem czy uda mi się to precyzyjnie opisać: otóż chce wyedytować obiekt "teacher" w formularzu pojawiaja sie aktualne dane, po kliknieciu posta chce żeby się zaaktualizowały, problem jest pewnie w tym że dostaje wyjątek, za pewne chodzi o to że przy update z Hibernate nie znajduje odpowiedniego obiektu w bazie. Jak temu zaradzić ? W springa dopiero wchodzę.
@Transactional
@RequestMapping(value = "/editTeacher", method = RequestMethod.GET)
public String editTeacher(Model model, HttpServletRequest request) {
Teacher teacher = teacherDAO.getTeacher(Integer.parseInt(request
.getParameter("id")));
model.addAttribute("teacher", teacher);
model.addAttribute("classes", classDAO.findAll());
return "editTeacher";
}
@Transactional
@RequestMapping(value = "/editTeacher", method = RequestMethod.POST)
public String editTeacher(@Valid Teacher teacher, BindingResult errors,
Model model, HttpServletRequest request) {
if (errors.hasErrors()) {
return "addTeacher";
}
teacherDAO.updateTeacher(teacher);
return "editTeacher";
}
<spring:url value="/editTeacher" var="editTeacher" htmlEscape="true"/>
<sf:form method="POST" modelAttribute="teacher" action="${editTeacher}">
<fieldse>
<table cellspacing="0">
<tr>
<th><label for="username">Nazwa użytkownika</label></th>
<td><sf:input path="username" id="username" /></td>
<td><sf:errors path="username" cssClass="error" /></td>
</tr>
<tr>
<th><label for="password">Hasło</label></th>
<td><sf:input path="password" id="password" /></td>
<td><sf:errors path="password" cssClass="error" /></td>
</tr>
<tr>
<th><label for="name">Imię</label></th>
<td><sf:input path="name" id="name" /></td>
<td><sf:errors path="name" cssClass="error" /></td>
</tr>
<tr>
<th><label for="surname">Nazwisko</label></th>
<td><sf:input path="surname" id="surname" /></td>
<td><sf:errors path="surname" cssClass="error" /></td>
</tr>
<tr>
<th><label for="email">E-mail</label></th>
<td><sf:input path="email" id="email" /></td>
<td><sf:errors path="email" cssClass="error" /></td>
</tr>
<tr>
<th><label for="schoolClass">Klasa</label></th>
<td>
<sf:select path="schoolClass" id="schoolClass">
<sf:option value="-1" label="--- Select ---" />
<c:forEach var="schoolClass" items="${classes}">
<option value="${schoolClass.id}">${schoolClass.fullName}</option>
</c:forEach>
</sf:select>
</td>
<td><sf:errors path="schoolClass" cssClass="error" /></td>
</tr>
<tr>
<th></th>
<td><input name="commit" type="submit" value="Edytuj" /></td>
</tr>
</table>
</fieldse>
</sf:form>