java - 从 Spring 表单获取 Post 请求中的 null 设置值

标签 java spring-boot jpa spring-form

我正在尝试提出问题,有多个选项。我成功获得了问题,但其选项变为空。

<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/

相关文章:

java - GlassFish v3 Prelude - 管理问题

java - 如何使用 HQL 获取以小时为单位的日期差异

java - 可执行 jar 中的 RESTfull Jersey 应用程序错误

Spring Autowire Hashmap 在 kotlin 中不起作用

java - 如果 RequestBody 中存在任何未知字段,则需要拒绝 POST/PUT 请求

mysql - Spring MVC 无法删除父行?

java - 传递到持久化的分离实体 - Hibernate + JavaFX

java - 在 Struts 2 spring 应用程序中添加安全性

spring-boot - JPA 规范示例

java - hibernate session 的 getNamedQuery(String name) 和 createNamedQuery(String name) 有什么区别?