web-dev-qa-db-ja.com

modelAttributeを使用してajax(jquery)でSpringフォームを送信する方法

Spring MVCは初めてです。私はこのような形をしています

_<form:form action="/myaction.htm" method="post" modelAttribute="myForm" id="formid">_とjsonを返すコントローラー

public @ResponseBody ResultObject doPost(@ModelAttribute("myForm") MyForm myForm){ System.out.println("myform.input"); }

このusing$("#formid").submit();を送信でき、modelAttributeは正常に機能し、UIから値を取得します。

私の質問は、このフォームをjquery ajaxの方法で送信する方法ですか?私はこれを試しました、

_$.ajax({
type:"post",
url:"/myaction.htm",
async: false,
dataType: "json",
success: function(){
alert("success");
}

});
_

フォームが送信されたが、modelAttribute値がnullの場合、送信中にmodelAttributeオブジェクト(フォームが使用しているオブジェクト)を含める方法

14
Rony

データを投稿する必要があります。私が通常行う方法は、以下を使用することです。

var str = $("#myForm").serialize();

$.ajax({
    type:"post",
    data:str,
    url:"/myaction.htm",
    async: false,
    dataType: "json",
    success: function(){
       alert("success");
    }
});
53
Manuel Quinones

サーバーにパラメーターを渡していないので、ModelAttributesにはデータが入力されていません。フォームデータはサーバーに送信する必要があります

$.post('myaction.htm', $('#formid').serialize()) ajax postリクエストを送信します。

2
ssk