gpt4 book ai didi

java - Spring Thymeleaf - 如何映射到需要从 HTML 传递到 Controller 的 ID 的 URL?

转载 作者:行者123 更新时间:2023-12-02 02:14:59 26 4
gpt4 key购买 nike

在我的应用程序中,用户单击链接来编辑他们选择的考试。

当他们单击该链接时,应该会打开 editExam.html,并且该 URL 包含他们选择的考试的 ID。

当我单击链接时,URL 是正确的(它包含考试 ID),但它不显示 editExam.html 页面,它只显示我的主页(默认的本地主机页面)

enter image description here

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>

editExam.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>

我的 Controller :

//Update an exam
@RequestMapping(value = "/editExam.html{examId}", method = { RequestMethod.POST, RequestMethod.PUT})
public String editExam(@ModelAttribute("exam") @PathVariable(value = "examId")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";
}

在我将“RequestMethod.POST”添加到 Controller 之前,此代码显示了 editExam 页面。

最佳答案

尝试改变

<a th:href="@{/editExam.html(id=${exam.examId})}">Edit Exam</a> 

<a th:href="@{/exam/{id}(id=${exam.examId})}">Edit Exam</a> 

在你的 Controller 中

@RequestMapping(value = "/editExam.html{examId}", method = { RequestMethod.POST, RequestMethod.PUT})

@RequestMapping(value = "/exam/{examId}", method = { RequestMethod.POST, RequestMethod.PUT})

关于java - Spring Thymeleaf - 如何映射到需要从 HTML 传递到 Controller 的 ID 的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49428907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com