【问题标题】:Getting null Set value in Post request from spring form从 Spring 表单中获取 Post 请求中的 null Set 值
【发布时间】:2019-11-01 17:28:31
【问题描述】:

我正在尝试提出问题,它有多种选择。我正在成功提问,但它的选项变为空。

<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
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 Form 代码:​​-

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

【问题讨论】:

    标签: java spring-boot jpa spring-form


    【解决方案1】:

    尝试在表单中使用以下内容:

    <c:forEach 
        <c:forEach items="${options}" var="option">
        <form:input path="option.mcq"/>                              
    </c:forEach>
    

    【讨论】:

      猜你喜欢
      • 2020-04-03
      • 2012-07-05
      • 2021-10-27
      • 2014-08-04
      • 1970-01-01
      • 2020-08-16
      • 2018-08-15
      • 1970-01-01
      • 2022-11-18
      相关资源
      最近更新 更多