我正在尝试提出问题,有多个选项。我成功获得了问题,但其选项变为空。
<c:forEach begin="0" end="${optionsCount}" varStatus="loop">
<form:input path="options[${loop.index}].mcq"/>
</c:forEach>
public class OnlineTestQuestionBean {
private String optionsCount;
private Long questionId;
private String question;
private Set<QuestionOptionBean> options;
//setter getter
}
public class QuestionOptionBean {
private Long optionId;
private String mcq;
//setter getter
}
以下是 Controller 代码:-
@Controller
public class OnlineTestController {
@RequestMapping(value = "/savequestion", method = RequestMethod.GET)
public String addQuestion(Model model) {
model.addAttribute("OnlineTestQuestionBean", onlineTestQuestionBean);
return "addquestion";
}
@RequestMapping(value = "/savequestion", method = RequestMethod.POST)
public String saveQuestion(@ModelAttribute("OnlineTestQuestionBean")OnlineTestQuestionBean onlineTestQuestionBean, Model model) {
return null;
}
}
以下是 Spring 表单代码:-
<c:forEach begin="0" end="${optionsCount}" varStatus="loop">
<form:input path="options[${loop.index}].mcq"/>
</c:forEach>
当我提交时,我得到“无法从大小为 0 的集合中获取索引为 0 的元素,使用属性路径访问”此异常,
假设我使用以下代码,我得到空集值。
<input type="text" path="options.mcq"/>
最佳答案
尝试在表单中使用以下内容:
<c:forEach
<c:forEach items="${options}" var="option">
<form:input path="option.mcq"/>
</c:forEach>
关于java - 从 Spring 表单获取 Post 请求中的 null 设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56659785/