以下は、Spring MVC コントローラーへの JQuery Ajax 呼び出しを使用して、Json シリアル化オブジェクト (他の pojo のリストを持つ Java pojo) を投稿しようとする私のコードです。
サーバーから不正なリクエスト エラーを取得しています。
modalForm データが Json オブジェクトから削除されると、MainPojo データはサーバー側で正しく受信されます。
HTMLコード
Fisrt form
-------------
<form id="mainForm">
.....
</form>
Form in the modal
-----------------
<form id="modelform" ..>
<div id="row">
<input type="text" id="subject" />
<input type="text" id="max" />
<input type="text" id="min" />
</div>
<div id="row">
<input type="text" id="subject" />
<input type="text" id="max" />
<input type="text" id="min" />
</div>
.............
</form>}
Jクエリ
var mainObject = $('#mainForm').serializeObject();
var modelObject = $('#modelform').serializeObject();
mainObject.marks = modelObject;
Json (期待される)
{
"name": "Some Name",
"age": "10",
"marks": [
{
"subject": "maths",
"max": "20",
"min":"12"
},
{
"subject": "english",
"max": "20",
"min":"12",
}
]
}
Json (上記コードの実際の出力)
{
"name": "Some Name",
"age": "10",
"marks": [
{
"subject": "maths",
"subject": "english"
},
{
"max": "20",
"max":"20",
},
{
"min": "12",
"min":"12"
}
]
}
//Ajax call
$.ajax({
url: '/save',
type: 'POST',
contentType: 'application/json',
mimeType: 'application/json',
data : JSON.stringify(mainObject),
dataType: 'json',
success: function(data) {
alert(data.msg);
},
error:function (xhr, ajaxOptions, thrownError) {
alert('Technical error occured');
}
});
Java ポジョ
public class MainPojo {
private String name;
private String age;
private Lists<marks>
..................
}
public class ModelPojo {
private String subject;
private String maxMarks;
private String minMarks;
.....................
}
コントローラーの方法
@RequestMapping(value = "save", headers = "Accept=application/json",
method = RequestMethod.POST)
public @ResponseBody String save(@RequestBody final MainPojo mainPojo) {
}
問題を特定するのを手伝ってください。
ありがとうございました。