GETリクエストが発生したときにオブジェクトをJSONにマーシャリングできるSpring RESTアプリケーションがあります。しかし、私はPOSTメソッドのために何をすべきですか?私はJSONオブジェクトを送信しますが、それをJavaオブジェクトにアンマーシャリングすることはできません。ここに私のコントローラのメソッドです:JSONオブジェクトをJavaクラスにアンマーシャリングする方法は?
@RequestMapping(value = "/user", method = RequestMethod.POST)
public void createUser(HttpServletResponse response, @RequestBody User user) {
...
response.setStatus(HttpServletResponse.SC_OK);
}
私はそのように私のJSONを送信:
var userName = $('#userName').val();
var password = $('#password').val();
var mail = $('#mail').val();
var admin = $("#admin").is(':checked');
var user = {userName: userName, password: password, mail: mail, admin:admin};
$.ajax({
async : false,
type: 'POST',
contentType: 'application/json',
url: '/sfd/user',
data: user,
dataType: 'json',
success: function(data) {
...
},
error: function(data) {
...
}
});
はPS:ここでは :http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/それは言う:
検証がある場合エラーの場合は、エラーメッセージ でHTTP 400が返されます。そうでない場合は、HTTP 200が返されます。
私は400 Bad Request Errorを持っています。たぶん問題はそれに関連しているのでしょうか?
PS2:すべての要素を設定した後にUserオブジェクトを送信する必要がありますか?私はUserオブジェクトにいくつかの他の属性、つまりアドレスがあるが、クライアントからそれを設定して送信しないことを意味します。
PS3: AbstractHandlerExceptionResolverのresolveExceptionメソッドをデバッグすると、そのエラーが表示されます。 'u'は未定義の文字です(私は 'u'はJSON => userNameの最初の文字の最初のキーです)。
ので、あなたのアプリケーションのコンテキストでこれを設定しようとします代わりに何が起こるのですか? – Bozho
@Bozho、この質問はそれに関連していますhttp://stackoverflow.com/questions/7481055/sending-json-data-to-server-errorそれは400の悪い要求エラーを与える – kamaci
あなたはそれのための提案がありますか? – kamaci