Я пытаюсь создать форму thymeleaf для обновления всего пару атрибутов основы объекта:Обновления формы: Spring MVC + thymeleaf
@RequestMapping(value = "/jobs/{id}", method = RequestMethod.GET)
public ModelAndView update(@PathVariable Integer id) {
ModelAndView mav = new ModelAndView("updateJob.html");
JobDescription updateJob = jobDescriptionService.findByID(id);
mav.addObject("updateJob", updateJob);
return mav;
}
@RequestMapping(value = "/jobs/{id}", method = RequestMethod.PUT)
public String saveUpdate(@PathVariable Integer id, @ModelAttribute("updateJob") JobDescription updateJob) {
jobDescriptionService.update(updateJob);
return "redirect:/jobs/" + id;
}
<form th:action="@{'/jobs/'+ ${updateJob.id}}" th:object="${updateJob}" th:method="PUT">
<table>
<tr>
<td><label>Description</label></td>
<td><input type="text" th:field="*{description}" /></td>
</tr>
<tr>
<td><label>Deadline</label></td>
<td><input type="text" th:field="*{deadline}" /></td>
</tr>
<tr>
<td></td>
<td><button type="submit">Update</button></td>
</tr>
</table>
</form>
Проблема заключается в том, что объект задания имеет несколько других атрибуты (например, id, createdDate и т. д.), которые я не хочу обновлять. Однако, когда я нажимаю кнопку отправки формы обновления, объект, созданный в методе saveUpdate, имеет те атрибуты, которые установлены в значение null (если я не задал их в скрытых полях внутри формы). Есть ли другой способ сохранить их?
Скважины кода не являются буено. Объясните, как это устраняет проблему. Кроме того, я уверен, что OP использует Java, а не JavaScript. – royhowie