フォーム(JSP / Struts 1.1)をシリアル化して、オブジェクトやマップ、またはjQueryの.getJSON()メソッドに必要なものに入れようとしています。これが私のjsコードです:
// This function makes an AJAX call, passing the entire form to the Action class
function ajaxCallWithForm(inputURL, formName, onReturnFunction)
{
var formAsMap = serializeForm(formName);
$.getJSON(inputURL, formAsMap, onReturnFunction);
}
function serializeForm(formName)
{
var obj = {};
var a = $('#'+formName).serializeArray();
$.each(a, function() {
if (obj[this.name] !== undefined) {
if (!obj[this.name].push) {
obj[this.name] = [obj[this.name]];
}
obj[this.name].push(this.value || '');
} else {
obj[this.name] = this.value || '';
}
});
return obj;
}
これによりjava.lang.IllegalArgumentException
、バックエンドがになります(BeanUtils.populateサーブレットメソッドと関係があります)。
.getJSON()呼び出しの3つのパラメーターの2番目を次のように設定すると、正常に機能し、データはJavaバックエンドのフォームオブジェクトに表示されます。
// This function makes an AJAX call, passing the entire form to the Action class
function ajaxCallWithForm(inputURL, formName, onReturnFunction)
{
$.getJSON(inputURL, {"vehicleKeyNum":12345,
"vehicleID":"12345",
"rand":Math.random()},
onReturnFunction);
}
また、フォームからのデータを含み、同じ結果になる適切な構文で文字列を作成しようとしました。構文が間違っている可能性があります。とにかく、私の主な問題は次のとおりです。
1).getJSON()メソッドは、「リクエストとともにサーバーに送信されるマップまたは文字列」を受け入れます。2番目のパラメーターとして(http://api.jquery.com/jQuery.getJSON/を参照)
2)「地図」だと思うものを渡します
3)取得しているのですが、java.lang.IllegalArgumentException
ここからどこに行けばいいのかわかりません