2017-09-26 211 views
0

假设我有类用户,我做了一类用户的列表,这个类对象添加到模型:如何更新的对象列表发送到Spring MVC的控制器

public class User { 
    private String firstName; 
    private String lastName; 
    private Integer orderNumber; 

    ...//getters and setters 
} 

public class Users { 
    private List<User> users; 

    ...//getter and setter 
} 

我阿多诺的页面:

<form role="form" method="POST" action="save" modelAttribute="users"> 
    <table> 
     <thead> 
     <tr> 
      <th/> 
      <th>First Name</th> 
      <th>Last Name</th> 
     </tr> 
     </thead> 
    <tbody> 
    <c:forEach var="user" items="${users}"> 
     <tr> 
      <td>${user.orderNumber}</td> 
      <td>${user.firstName}</td> 
      <td>${user.lastName}</td> 
     </tr> 
    </c:forEach> 
</tbody> 
</table> 
    <button id="saveButton" type="submit">Save</button> 
</form:form> 
... 
<script> 
$("tbody").sortable({ 
    stop: function(event, ui) { 
     $(this).find('tr').each(function(i) { 
     $(this).find('td:first').text(i+1); 
     }); 
    } 
}).disableSelection(); 
</script> 

当我点击保存按钮我要绑定的用户列表与更新的订单号发布方法在控制器上:

@RequestMapping (method = POST, path = "/save") 
public ModelAndView saveUsers(@ModelAttribute("users") Users users) throws Exception { 
.... 
return new ModelAndView(..); 
} 

但用户始终为空。

如何更新当前用户列表并将其保存在我的控制器中?

回答

0

我无法在您的html代码中找到'td tag'。 如果标签存在,则无法传递给saveUsers控制器,因为您没有输入标签。表单标签可以使用输入标签传递您想要的每个数据。

<form:form role="form" method="POST" action="save" modelAttribute="users"> 
    <table> 
     <thead> 
     <tr> 
      <th/> 
      <th>First Name</th> 
      <th>Last Name</th> 
     </tr> 
     </thead> 
    <tbody> 
    <c:forEach var="user" items="${users}"> 

     <form:hidden path="orderNum" value="${user.orderNum}"/> 
     <form:hidden path="firstName" value="${user.firstName}"/> 
     <form:hidden path="lastName" value="${user.lastName}"/> 
     <tr>${user.orderNum}</tr> 
     <tr>${user.firstName}</tr> 
     <tr>${user.lastName}</tr> 
    </c:forEach> 
</tbody> 
</table> 
    <button id="saveButton" type="submit">Save</button> 
</form:form> 

我想它会工作。输入标签隐藏的原因是仅仅传递不显示数据。

相关问题