基本的に、情報の更新と送信を行った後、フォームの上にあるテーブルを、フォームの送信時に更新された情報で実際に変更したいと考えています。私は残りの部分と一緒に春のフレームワークを使用しています。これを行う方法を知りたいです。私のコードはまだスパイク段階にあります。これは、ユーザー情報を取得および更新するための私の ajax コードです。
$('.ajax_test').click(function() {
var userId = +$(this).val();
$.get('${pageContext.request.contextPath}/ajax/' + userId, function(user) {
$(".personDetails #id").val(user.id);
$(".personDetails #name").val(user.name);
$(".personDetails #username").val(user.username);
$(".personDetails #email").val(user.email);
$(".personDetails #authority").val(user.authority);
});
});
$("#myForm").submit(function(e) {
$.post('${pageContext.request.contextPath}/updateUser', $(this).serialize(), function(response) {
alert("User has been updated");
});
e.preventDefault();
});
そして、これはリクエストを処理する私のコントローラーです:
@RequestMapping("/ajax/{id}")
public @ResponseBody User getUser(Model model, @PathVariable int id) {
User user = usersService.getUser(id);
model.addAttribute("user", user);
return user;
}
@RequestMapping(value = "/updateUser", method = RequestMethod.POST)
public @ResponseBody String updateUser(User user, Model model) {
usersService.updateUser(user);
return "users";
}
これは、すべてのユーザーを一覧表示する私の方法です。
@Secured("ROLE_ADMIN")
@RequestMapping("/users")
public String getUsers(Model model) {
List<User> users = usersService.getUsers();
model.addAttribute("users", users);
return "users";
}
私の ajax は、単純な ajax GET リクエストで上記のメソッドと対話する必要がありますか?