2012-12-19 11 views
13

Sono nuovo in Spring MVC. Ho una forma del genere,Come inviare il modulo molla in ajax (jquery) con modelloAttribute

<form:form acion="/myaction.htm" method="post" modelAttribute="myForm" id="formid"> e un controller che restituisce JSON

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

sono in grado di presentare tale utilizzando $("#formid").submit(); e la mia modelAttribute sta lavorando bene, prendendo i valori da UI.

la mia domanda è, come inviare questo modulo in modo jquery ajax? Ho provato questo,

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

}); 

il modulo viene inviato ma valori modelAttribute sono nulli, come includere oggetto modelAttribute (oggetto che forma sta utilizzando) durante l'invio?

risposta

2

tuoi ModelAttributes non sono popolate come non si passa alcun params ai dati server.Form deve essere inviato al server

$.post('myaction.htm', $('#formid').serialize()) per inviare richiesta POST Ajax.

52

È necessario pubblicare i dati. Il modo in cui lo faccio in genere è il seguente.

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

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

ha funzionato ora, grazie !! – Rony

+9

@Rony Non dimenticare di contrassegnarlo accettato se ha funzionato per te. –

+0

Sto usando SpringSecurity con CSRF e sto ottenendo questo: token non riconosciuto '_csrf': mi aspettavo ('true', 'false' o 'null'). Qualche soluzione a questo? – zygimantus

Problemi correlati