JQuery で Spring REST WebService を呼び出したい。
コントローラーには 2 つのメソッドがあります。
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public @ResponseBody User getUser(@PathVariable long id, Model model){
return new User("TestUser");
}
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void updateUser(@PathVariable long id, @Valid User user){
user.getName();
}
クラス User は次のようになります。
public class User {
private String name;
public User(){};
public User(String name){this.name = name;}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
};
}
今私が呼び出すとhttp://localhost:8080/demo/user/2
、結果は期待どおり {"name":"TestUser"} になります。
しかし、リソースを変更しようとするとき、私は次のようにします:
$.ajax({
url: "http://localhost:8080/demo/user/2",
dataType: "json",
data: '{"name":"NewTestUser"}',
type: "PUT",
success: function(){alert('success');}
});
適切なメソッド (updateUser) が呼び出されていることを Debugmode で確認できますが、User オブジェクトのインスタンス変数名は常に null です。誰が私が間違っているのか教えてもらえますか? ありがとう!