2012-12-19 92 views
13

私はSpring MVCを初めてお使いです。 私は$("#formid").submit();を使用して、これを提出することができる午前、modelAttributeでajax(jquery)でspringフォームを送信するには

<form:form acion="/myaction.htm" method="post" modelAttribute="myForm" id="formid">とJSON

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

を返すコントローラをこのような形を持っており、私のmodelAttributeはUIから値を取って、正常に動作しています。

私の質問は、このフォームをjquery ajaxで送信する方法ですか?送信中 Iは、

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

}); 

フォームがサブミットされるがmodelAttribute値はヌルであり、どのようにmodelAttributeオブジェクト(そのフォームが使用されているオブジェクト)を含むようにこの試み?

答えて

2

あなたはserver.Formデータに任意ののparamsを渡していないとしてあなたModelAttributesが移植されていないが、AJAX POSTリクエストを送信するために、サーバー

$.post('myaction.htm', $('#formid').serialize())にポストする必要があります。

52

データを転記する必要があります。私が通常やっているやり方は、次のようなものです。

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

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

ありがとうございました! – Rony

+9

@Ronyそれがあなたのために働いた場合は、それを受け入れることを忘れないでください。 –

+0

私はCSRFでSpringSecurityを使用していますが、これを取得しています。認識できないトークン '_csrf'が予期していた( 'true'、 'false'または 'null')。それに対する解決策はありますか? – zygimantus

関連する問題