在我的应用程序中,用户会显示一个考试对象列表,然后选择一个进行编辑。 当他们点击编辑链接时,它会将他们带到一个HTML页面,其中URL包含该考试ID。
我想知道如何将考试的ID传递给控制器。 我收到此错误:"缺少URI模板变量' id'对于Long"
类型的方法参数我还想知道如何使现有值显示在表单文本框中。
HTML allSubjects.html,用户选择要编辑的主题:(这一切都有效)
<h4> exams:</h4>
<div th:each="exam : ${subject.exam}">
<h4 th:text="${exam.examTitle}"/>
<a th:href="@{/editExam.html(id=${exam.examId})}">Edit Exam</a>
编辑考试HTML:
<form action="#" th:action="@{/editExam.html{examId}}" th:object="${exam}" method="put">
<table>
<tr>
<td> Exam Title:</td>
<td><input type="text" th:field="*{examTitle}" th:text="${exam.examTitle}"/></td>
<!-- <td th:if="${#fields.hasErrors('examTitlee')}" th:errors="*{examTitle}">error message</td> -->
</tr>
<tr>
<td> Exam grade worth </td>
<td><input th:field="*{examGradeWorth}" /></td>
<!-- <td th:if="${#fields.hasErrors('examGradeWorth')}" th:errors="*{examGradeWorth}">error message</td> -->
</tr>
<tr>
<td>examGradeAchieved</td>
<td><input th:field="*{examGradeAchieved}"/></td>
</tr>
<tr>
<td><button type="submit">Submit post</button></td>
</tr>
</table>
</div>
</form>
我的控制器:
@RequestMapping(value = "/editExam.html{examId}", method = { RequestMethod.GET, RequestMethod.PUT })
public String editExam(@ModelAttribute("exam") @PathVariable(value = "id")Long examId, @RequestBody Exam exam,Model model, BindingResult result) {
examRepository.findOne(examId);
model.addAttribute("examTitle", exam.getExamTitle());
model.addAttribute("examGradeWorth", exam.getExamGradeWorth());
model.addAttribute("examGradeAchieved", exam.getExamGradeAchieved());
exam.setExamTitle(exam.getExamTitle());
exam.setExamGradeWorth(exam.getExamGradeWorth());
exam.setExamGradeAchieved(exam.getExamGradeAchieved());
examRepository.save(exam);
return "editExam";
}
当我尝试运行以上所有代码时,只是为了查看表单是否显示我收到以下错误:缺少URI模板变量&#39; id&#39;对于String
类型的方法参数