Spring - 发送对象列表以查看并返回仅在控制器中发布一个对象

时间:2015-07-08 08:18:40

标签: java jsp spring-mvc controller

我想向用户展示并在图片中编辑或删除它们。问题是,如何只发布一个对象或在列表中标识一个对象来编辑或删除?

我想编辑和删除应该提交2个参数:一个用于识别哪种操作(编辑,删除),另一个用于说明列表中的哪个对象是modidy(可能是索引?)。

enter image description here

我在控制器中有以下方法:

用户表单是一个包装类,是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打印表:

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

我管理提交帖子的方法:

/** 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中添加一些内容来发送params并在帖子持有者中管理它们,但不知道如何。

感谢。

1 个答案:

答案 0 :(得分:3)

  1. 您应该在单独的控制器方法中处理编辑和删除。

  2. 将提交按钮更改为输入类型=&#34;按钮&#34;并处理单击js事件,您可以在其中构建逻辑以决定必须调用哪个控制器方法(可以动态构建URL)并从js提交它。

  3. 在编辑/删除操作之后,您可能需要调用get,然后查询db,用户可以在jsp上看到最新结果。