基本上到目前为止,我有一个JSP页面,管理员可以在一个简单的表格中查看所有当前注册用户。然后,管理员可以在点击特定表格行'更新'按钮时更新用户信息(权限,电子邮件等)。Spring Ajax/Json用户更新表格
我想知道如何使屏幕上弹出的模式出现在屏幕上,并显示当前的用户信息,而不是将其重定向到另一个页面并购买表单。是否有很好的教程展示了如何实现这种类型的功能?
我正在构建基于Spring框架的这个Web应用程序。 这是我到目前为止的JSP页面。对于测试,我只是做了一个名为Ajax Testing的按钮,虽然我真的想要“更新”按钮来实例化一个模式并加载用户信息。
<c:forEach var="user" items="${users}">
<tr>
<td><c:out value="${user.id}" /></td>
<td><c:out value="${user.name}"/></td>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.email}"/></td>
<td><c:out value="${user.dob}"/></td>
<td><c:out value="${user.authority}"/></td>
<td>
<a id="update" href="<c:url value="/viewUser"><c:param name="id" value="${user.id}"/></c:url>"><button>Update</button></a>
</td>
<td>
<a id="delete" href="<c:url value="/deleteUser"><c:param name="id" value="${user.id}"/></c:url>"><button>Delete</button></a>
</td>
<td>
<a id="loadUser" href="<c:url value="/ajaxTest"><c:param name="id" value="${user.id}"/></c:url>"><button>Ajax Test</button></a>
</td>
</tr>
</c:forEach>
</table>
<div id="personIdResponse"> </div>
<script type="text/javascript">
$(document).ready(function(){
$("#loadUser").click(function(){
var personId = +$('#loadUser').val();
$.get('${pageContext.request.contextPath}/SDP_v1.2_JSON_TEST/ajaxTest/' + personId, function(user) {
$('#personIdResponse').text(user.name + ', = username ' + user.username);
});
});
});
</script>
这是我的控制器:
@RequestMapping("/viewUser")
public String updateUser(Model model, @RequestParam(value = "id", required = false) Integer id) {
User user = usersService.getUser(id);
model.addAttribute("user", user);
return "settings";
}
@RequestMapping("/ajaxTest")
@ResponseBody
public User ajaxTest(@RequestParam(value = "id", required = false) Integer id) {
return usersService.getUser(id);
}
@RequestMapping("/updateUser")
public String updateUser(Model model, User user) {
usersService.updateUser(user);
getUsers(model);
return "users";
}
@Secured("ROLE_ADMIN")
@RequestMapping("/deleteUser")
public String deleteUser(Model model,
@RequestParam(value = "id", required = false) Integer id) {
if (id == null) {
List<User> users = usersService.getUsers();
model.addAttribute("users", users);
return "users";
} else {
usersService.delete(id);
List<User> users = usersService.getUsers();
model.addAttribute("users", users);
return "users";
}
}
我不能在
您可以自己尝试一下,然后在此处发布代码。堆栈溢出的Q&A模型并没有真正扩展为搜索工具。你试过谷歌搜索吗?如果是这样,请包括您在帖子中找到的内容。你发现了什么,为什么没有回答你的问题? – jmort253
我被困在实际从哪里开始,是否使用JSON或AJAX?或两者。 – Maff
JSON是JavaScript对象表示法。这只是一个包装,而AJAX是一种通常使用XML的技术,但可以使用JSON。由于JavaScript默认分析JSON,因此JSON可能是更好的答案。这听起来像你只需要一个可以通过jQuery AJAX命中的RESTful URL来获取JSON格式的数据,然后你可以使用jQuery模式插件来构建窗口,然后简单地解析JSON并填充它。如果你从此开始,你可能会陷入困境。当你这样做时,你应该随着你的进步编辑这篇文章。现在,这太宽泛了,无法回答。希望这有助于 – jmort253