Spring - 发送要查看的对象列表并返回 Post 控制器中只有一个对象
Spring - Send List of Objects to View and back to Post only one Object in controller
我想像图片中那样向用户展示并编辑或删除它们。问题是,我如何才能 post 只有一个对象或在列表中识别一个对象来编辑或删除?
我想edit和delete应该提交2个参数:一个用来识别什么样的操作(edit,delete),另一个告诉modidy列表中的什么对象(也许是索引?)。
我在控制器中有以下方法:
用户表单是一个包装器 class,是遵循 this 教程
的用户列表
/** Default GET form handler for MaganeUsers, in submission will call listusers */
@RequestMapping(value="admin/manageusers", method=RequestMethod.GET)
public String listusers(Model model) {
List<User> users = userService.listUsersDetails();
UserForm userform = new UserForm();
userform.setUserForm(users);
model.addAttribute("userForm", userform);
return "admin/manageusers";
}
这是我的 jsp 打印 table:
<c:if test="${not empty userForm}">
<sf:form method="post" action="manageusers" modelAttribute="userForm">
<table>
<tr>
<th>No.</th>
<th>Username</th>
<th>User Roles</th>
<th>Enabled</th>
</tr>
<c:forEach items="${userForm.userForm}" var="users" varStatus="i">
<tr>
<td align="center">${i.count}</td>
<td><sf:input path="userForm[${i.index}].username" value="${users.username}"/></td>
<td><sf:input path="userForm[${i.index}].userRole" value="${users.userRole}"/></td>
<td><sf:input path="userForm[${i.index}].enabled" value="${users.enabled}"/></td>
<td><button name="submit" value="i">Edit</button><button name="submit" value="i">Delete</button></td>
</tr>
</c:forEach>
</table>
</sf:form>
</c:if>
以及我管理提交的方法post:
/** Default GET form handler for MaganeUsers, in submission will call listusers */
@RequestMapping(value="admin/manageusers", method=RequestMethod.POST)
public String deleteuser(Model model, @ModelAttribute("userForm") UserForm userForm) {
....
// code here?
userService.deleteUser(username);
return "admin/manageusers";
}
我想我应该在 JSP 中添加一些东西来发送参数并在 post holder 中管理它们,但不知道如何。
谢谢。
您应该在单独的控制器方法中处理编辑和删除。
将您的提交按钮更改为输入类型="button"并处理单击 js 事件,您可以在其中构建逻辑来决定必须调用哪个控制器方法(可能可以构建url 动态)并从 js 提交。
在 edit/delete 操作后,您可能需要调用 get 函数,后者会依次查询数据库,用户可以在 jsp.[=10 上看到最新结果=]
我想像图片中那样向用户展示并编辑或删除它们。问题是,我如何才能 post 只有一个对象或在列表中识别一个对象来编辑或删除?
我想edit和delete应该提交2个参数:一个用来识别什么样的操作(edit,delete),另一个告诉modidy列表中的什么对象(也许是索引?)。
我在控制器中有以下方法:
用户表单是一个包装器 class,是遵循 this 教程
的用户列表/** Default GET form handler for MaganeUsers, in submission will call listusers */
@RequestMapping(value="admin/manageusers", method=RequestMethod.GET)
public String listusers(Model model) {
List<User> users = userService.listUsersDetails();
UserForm userform = new UserForm();
userform.setUserForm(users);
model.addAttribute("userForm", userform);
return "admin/manageusers";
}
这是我的 jsp 打印 table:
<c:if test="${not empty userForm}">
<sf:form method="post" action="manageusers" modelAttribute="userForm">
<table>
<tr>
<th>No.</th>
<th>Username</th>
<th>User Roles</th>
<th>Enabled</th>
</tr>
<c:forEach items="${userForm.userForm}" var="users" varStatus="i">
<tr>
<td align="center">${i.count}</td>
<td><sf:input path="userForm[${i.index}].username" value="${users.username}"/></td>
<td><sf:input path="userForm[${i.index}].userRole" value="${users.userRole}"/></td>
<td><sf:input path="userForm[${i.index}].enabled" value="${users.enabled}"/></td>
<td><button name="submit" value="i">Edit</button><button name="submit" value="i">Delete</button></td>
</tr>
</c:forEach>
</table>
</sf:form>
</c:if>
以及我管理提交的方法post:
/** Default GET form handler for MaganeUsers, in submission will call listusers */
@RequestMapping(value="admin/manageusers", method=RequestMethod.POST)
public String deleteuser(Model model, @ModelAttribute("userForm") UserForm userForm) {
....
// code here?
userService.deleteUser(username);
return "admin/manageusers";
}
我想我应该在 JSP 中添加一些东西来发送参数并在 post holder 中管理它们,但不知道如何。
谢谢。
您应该在单独的控制器方法中处理编辑和删除。
将您的提交按钮更改为输入类型="button"并处理单击 js 事件,您可以在其中构建逻辑来决定必须调用哪个控制器方法(可能可以构建url 动态)并从 js 提交。
在 edit/delete 操作后,您可能需要调用 get 函数,后者会依次查询数据库,用户可以在 jsp.[=10 上看到最新结果=]