我是Spring MVC的新手,正在寻找一种很好的方法来执行以下操作:
我有一个显示用户表的jsp页面。在我的控制器中,我通过以下代码添加用户:
@ModelAttribute("users")
public List<UserAccount> getAllRegisteredUsers() {
return adminService.getRegisteredUsers();
}
在表格中我还有一个显示“禁用用户”的按钮。当有人点击该按钮时,我想调用该特定用户的setEnabled(false)方法,并最终在再次显示同一页面之前保留该用户。现在,JSP中的“禁用用户”链接如下所示:
<a onClick=$.post("/admin/deactivate/${user.id}")>Deactivate</a>
我的控制器在此处收到请求:
@RequestMapping(value = "/admin/deactivate/{id}", method = RequestMethod.POST)
public String deactivateUser(@ModelAttribute("users") ArrayList<UserAccount> users, @PathVariable("id") Long userId, ModelMap map) {
for (UserAccount userAccount : users) {
if (userAccount.getId() == userId) {
adminService.deactivateUser(userAccount);
}
}
return "admin";
}
这样可以正常工作,除了没有使用新模型刷新页面。我必须按F5然后我才能看到用户已被禁用。我真的不想在deactivateUser方法中返回任何内容,只需更新当前页面的模型即可。这是最好的方法吗?
答案 0 :(得分:1)
由于这是一个ajax请求,您必须使用ajax(看起来像jQuery)更新您的页面。您只需返回true
/ false
即可表示停用已成功。