gpt4 book ai didi

java - Spring - 无法读取 HTTP 消息。缺少必需的请求正文

转载 作者:行者123 更新时间:2023-12-02 11:28:49 24 4
gpt4 key购买 nike

我正在尝试编辑考试对象,但收到此错误:无法读取 HTTP 消息。缺少必需的请求正文。

我认为错误是您无法使用 HTTP GET 请求发送请求正文,但我不知道该怎么做。

用户选择要编辑的考试,我希望 HTML 将该 examId 传递给 Controller ​​。

我的 Controller :

 @RequestMapping(value = "/editExam.html{examId}", method = { 
RequestMethod.GET, 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";
}

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>

最佳答案

根据设计/创建 REST API 的最佳实践,建议...

  • 当您在数据库中添加任何新资源时,请使用 POST HTTP 方法
  • 更新现有资源时,请使用 PUT HTTP 方法
  • 检索资源时,使用 GET HTTP 方法
  • 当您删除任何资源时,请使用 DELETE HTTP 方法

因此,在您的情况下,在更新资源时(在您的情况下进行考试),您应该使用 PUT HTTP 方法而不是 GET ,无论如何, GET HTTP 方法不允许用户在 HTTP 请求中添加请求正文。

关于java - Spring - 无法读取 HTTP 消息。缺少必需的请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49422253/

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