Java 在Spring3MVC+中分别管理对象和列表;jsp web应用程序
经过深思熟虑,这是我能找到的最好的问题标题。不是那个代表,对不起:-( 顺便说一下,让我解释一下这个问题。 我必须实现一个管理面板。它显示一个表,其中每一行都包含一个用户及其角色和帐户状态。您可以在下图中看到这个想法 现在,我的问题是管理备份模型对象:Java 在Spring3MVC+中分别管理对象和列表;jsp web应用程序,java,jsp,spring-mvc,model-binding,spring-3,Java,Jsp,Spring Mvc,Model Binding,Spring 3,经过深思熟虑,这是我能找到的最好的问题标题。不是那个代表,对不起:-( 顺便说一下,让我解释一下这个问题。 我必须实现一个管理面板。它显示一个表,其中每一行都包含一个用户及其角色和帐户状态。您可以在下图中看到这个想法 现在,我的问题是管理备份模型对象: 我必须传递一个用户列表来填充管理面板,但是 我必须将每个用户绑定到一个模型对象,然后 我必须分别提交每个用户 我发现了许多将表作为一个整体进行管理的技巧,这样一个按钮就可以同时提交所有用户,但我想做的是用列表填充表,并分别管理每个列表记录(用户
http://authority/app/user_management/{user_id}/{is_locked}/{is_admin}/../
。uri将由相应的提交按钮触发,但我宁愿避免这种方法
此外,要使用正确的复选框值填充表,必须设置绑定。
有什么建议吗?
谢谢!我想你可以对每一行使用一个用户对象作为模型使用单独的表单。你将在输入参数列表中有一个简单的带有用户对象的“updateUser”处理程序。 我记得它可能是您在foreach中迭代的用户,但我需要用实际示例进行检查……)至少您可以使用简单的表单并将“id”、“isLocked”等作为请求参数传递
<!-- Inside foreach loop -->
<form action="/updateUser" method="POST">
<input type="hidden" name="id" value="${user.id}"/>
<tr>
<td><input type="checkbox" name="isAdmin" value="Is Admin" checked="${user.isAdmin}"/></td>
<td><input type="submit" value="Submit"/></td>
</tr>
</form>
你打算使用AJAX吗?如果没有,并且您正在提交整个页面,您可以通过单击单个提交按钮传递索引,并仅保留该行。这也将帮助用户保留他/她可能已更改但在页面刷新时尚未提交的行。感谢您的回复dvlpr。阿贾克斯是我的第一个猜测。我只是想知道是否有什么诀窍(或其他什么)可以只使用JSP和控制器逻辑完成所有工作。如果您只有少量参数,那么您可以将它们作为请求参数传递给映射到适当备份对象的控制器,并对其强制绑定。因此,我将为表中的每个用户提供一个
对象。这种方法有一个小问题:我将什么声明为commandName
属性值?我必须能够解决一个列表项,我不知道怎么做。我已经更新了答案,非常确定可以通过用户,但现在没有能力检查它。稍后将更新。
@RequestMapping(value = "/updateUser", method = RequestMethod.POST)
@ResponseBody
public ResponseDTO updateUser(@RequestParam String id, @RequstParam boolean isAdmin) {
// your update logic
}