Comment appeler Spring MVC à partir de Javascript?

Comment instancier un object personnalisé à partir d’un paramètre de demande? (J’ai essayé à la fois @ModelAtsortingbute et @RequestParam)

@RequestMapping(method = RequestMethod.POST) public Ssortingng newPerson(@ModelAtsortingbute(value = "personModel") Person person, BindingResult result) { // Person has just firstname and lastname fields } 

J’essaie d’appeler cela avec jQuery en utilisant le code suivant:

 var PersonText = '["firstname":"John", "lastname":"Someone"]'; $.ajax({ type : 'POST', url : "/addnewperson.do", data : {'personModel' : personText}, datatype : 'json', success : function(data) { var obj = jQuery.parseJSON(data); } }); 

En fait, mon plan initial était d’envoyer une liste complète d’objects Personne au contrôleur, mais comme cela n’a pas fonctionné, je suis revenu à un seul object, mais cela ne fonctionne plus non plus.

EDIT: le param ne doit pas obligatoirement être JSON, je pensais qu’il serait logique de sérialiser l’object Javascript en tant que JSON sur le contrôleur Spring.

J’ai pu faire en sorte que cela fonctionne avec l’appel suivant à partir de Javascript (jQuery)

 $.post("/modifylist.do",{ firstname: "John", lastname: "Doe" } ); 

Cependant, j’aimerais toujours savoir comment utiliser cela avec des tableaux ou des listes, c’est-à-dire que le paramètre est Person[] ou List .

 @RequestMapping(method = RequestMethod.POST) public Ssortingng newPerson(@RequestParam("personModel") Ssortingng person, BindingResult result) { Gson gson = new Gson(); Person finalObject = gson.fromJson(person, Person.class); // Person has just firstname and lastname fields } 

Vous pouvez l’utiliser comme ça. et pour la liste, vous pouvez utiliser quelque chose comme:

 Gson gson = new Gson(); List finalObjectList = gson.fromJson(Person, new TypeToken>() { }.getType()); 

J’espère que ça vous aide 🙂