一尘不染

如何发送对象列表以查看并返回到控制器中的Post方法

spring-mvc

假设我有上课Person,我列出了一个Person实例列表,并将这个列表添加到一个实例中Model

List<Person> persons = new ArrayList<Person>();
model.addAttribute("persons",persons);
return "savePersons";

View页面中,我有一个表格:

<form:form method="post" action="savePerson" modelAttribute="persons">
    <c:forEach var="person" items="${persons}">
        <form:input path="person.FName" name="FName" id="FName" value="" />
        <form:input path="person.LName" name="LName" id="LName" value="" />
    </c:forEach>

    <button type="submit"></button>
</form:form>

单击提交按钮时,我想将其绑定Person List到控制器上的POST方法。

@RequestMapping(value = { "savePerson" }, method = RequestMethod.POST)
public String savePerson(Model model, HttpServletRequest request,
        HttpSession session,@ModelAttribute("persons")List<Person> persons) {
    System.out.println(persons.length);
    return "success";
}

persons列表未按该POST方法绑定/获取。

是否可以通过这种方式绑定列表对象,或者有其他替代方法吗?


阅读 513

收藏
2020-06-01

共1个答案

一尘不染

我认为此链接将帮助您设置要执行的操作:

http://viralpatel.net/blogs/spring-mvc-multi-row-submit-java-
list/

看起来您的表单中需要将其修改为:

<form:form method="post" action="savePerson" modelAttribute="persons">
    <c:forEach var="person" items="${persons}" varStatus="status">
        <form:input path="person[${status.index}].FName" name="FName" id="FName" value="" />
        <form:input path="person[${status.index}].LName" name="LName" id="LName" value="" />
    </c:forEach>
2020-06-01