我想用 Spring mvc 做一个 mcq。我有一个类 Mcq,它与类 Question 具有 OneToMany 关系,它与类 Answer 具有 OneToMany 关系。因此,Mcq 有一个 Arraylist ListOfQuestions 作为属性,而 Question 有一个 Arraylist ListOfAnswers。
我的控制器是
@RequestMapping(value="displayMcq", method = RequestMethod.GET)
public String showMcq(Model model) {
Mcq mcq = mcqService.findById(new Long(1));
model.addAttribute("mcq", mcq);
return "displayMcq";
}
@RequestMapping(method = RequestMethod.POST)
public String displayQcmRepondu(@ModelAttribute("mcq2") Mcq mcq, BindingResult binding, SessionStatus status) {
if (binding.hasErrors()) {
return "displayMcq";
} else {
status.setComplete();
return "redirect:/mcqSuccess/";
}
}
我的观点 displayMcq.jsp 是
<form:form modelAttribute="mcq" method="POST">
<ol>
<c:forEach items="${mcq.listOfQuestions}" var="question">
<li>
<c:out value="${question.label}" />
<br />
<ul>
<c:forEach var="answer" items="${question.listOfAnswers}">
<form:checkbox path="listOfQuestions" value="answer.id" label="${answer.label}" />
<br />
</c:forEach>
</ul>
</li>
</c:forEach>
</ol>
<input type="submit" value="Validate" />
</form:form>
我的 mcq 显示良好,但表单处理失败。我停留在 displayMcq 外观上,出现错误“Etat HTTP 405 - 不支持请求方法'POST'”。
那么,你能解释一下这个问题,帮助我正确处理我的 mcq 并返回检查的答案吗?