クライアントコード:
$.ajax({
type: "POST",
url: "../web/zittles",
data: jsonformatdata,
contentType: "application/json",
dataType: "json",
success: function(data)
{
alert("data from server : "+data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert("jqXHR.status = "+jqXHR.status); //getting status code 400 here
}
});
jsonデータを出力します:
{
"id": 1,
"No": "1234",
"Desc": "Testing"
}
Javaクラス:
public class Fizzle implements Serializable
{
private String id;
private String No;
private String Desc;
// getters and setters
}
Spring 3コントローラー:
@RequestMapping(value = '/zittles', method = RequestMethod.POST, headers ="Content-Type=application/json")
public @ResponseBody void doSomeThing (@RequestBody Fizzle fizzle) {
//do something here
}
app-servlet.xmlには
<mvc:annotation-driven/>
tomcatの/libフォルダには
jackson-core-lgpl-1.9.10.jar
jackson-mapper-lgpl-1.9.10.jar
ステータスコード400でエラーが発生する-
"The request sent by the client was syntactically incorrect"
以下のようにコントローラーコードを変更すると、jsonデータが文字列として取得されます。
public @ResponseBody void doSomeThing (@RequestBody String fizzle) {}
理想的には、JacksonはjsonデータをFizzleオブジェクトに自動的にマッピングする必要があります。
私がここで行方不明になっているのは何ですか。ジャクソンパーサーを正しく構成するために他に何かしなければならないことはありますか?
助けてください。