2012-12-19 3 views
13

Jestem nowy w Spring MVC. Mam formularz jak ten,Jak przesłać formularz wiosna w ajax (jquery) z modelemAttribute

<form:form acion="/myaction.htm" method="post" modelAttribute="myForm" id="formid"> i kontrolera, która zwraca JSON

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

jestem w stanie przedstawić to przy użyciu $("#formid").submit(); i mój modelAttribute działa poprawnie, przy wartości z UI.

Moje pytanie brzmi: jak przesłać ten formularz w jquery ajax? Próbowałem to,

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

}); 

przesłaniu formularza, ale wartości modelAttribute są wartości null, jak to obiekt modelAttribute (Object że postać używa) podczas składania?

Odpowiedz

2

twoi ModelAttributes nie są wypełniane, ponieważ nie przechodzą żadnych params danych server.Form musi być wysłana do serwera

$.post('myaction.htm', $('#formid').serialize()) wysłać żądanie POST ajax.

52

Musisz opublikować dane. Sposób, w jaki zwykle to robię, to:

+0

pracuję teraz, dziękuję !! – Rony

+9

@Rony Nie zapomnij oznaczyć go jako zaakceptowanego, jeśli zadziałało. –

+0

Używam SpringSecurity z CSRF i otrzymuję to: Nierozpoznany token "_csrf": oczekiwał ("true", "false" lub "null"). Jakieś rozwiązanie tego? – zygimantus