web-dev-qa-db-fra.com

Comment soumettre un formulaire de printemps en ajax (jquery) avec modelAttribute

Je suis nouveau sur Spring MVC. J'ai une forme comme ça,

<form:form action="/myaction.htm" method="post" modelAttribute="myForm" id="formid"> Et un contrôleur qui retourne json

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

Je peux soumettre ceci using$("#formid").submit(); et mon modelAttribute fonctionne très bien, en prenant des valeurs de l'interface utilisateur.

ma question est, comment soumettre ce formulaire de manière jquery ajax? J'ai essayé ça,

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

});

le formulaire est soumis mais les valeurs modelAttribute sont nulles, comment inclure l'objet modelAttribute (objet que le formulaire utilise) lors de la soumission?

14
Rony

Vous devez publier les données. La façon dont je le fais généralement consiste à utiliser ce qui suit.

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

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

vos ModelAttributes ne sont pas renseignés car vous ne transmettez aucun paramètre au serveur. Les données de formulaire doivent être publiées sur le serveur

$.post('myaction.htm', $('#formid').serialize()) pour envoyer une demande de publication ajax.

2
ssk