Spring MVC - Refactoring d'un exemple de publication jQuery Ajax
En examinant un exemple de formulaire jQuery Ajax POST et Spring MVC, découvrez les modèles suivants:
Dans Spring MVC, utilisez@RequestParam
pour accepter les données Ajax POST.
@RequestMapping(value = "/path-to/hosting/save", method = RequestMethod.POST) @ResponseBody public String saveHosting( @RequestParam int id, @RequestParam String domain, @RequestParam String name, @RequestParam String desc, @RequestParam String tags, @RequestParam String afflink, @RequestParam boolean display, @RequestParam boolean hosting, @RequestParam boolean cdn, @RequestParam boolean paas, @RequestParam String imageUrl, @RequestParam String favUrl, @RequestParam String whoisPattern ) { //...do something }
Le code ci-dessus fonctionne bien, juste un peu bizarre et difficile à maintenir. Javascript$.post
et Spring MVC@RequestParam
traitent tous deux trop de paramètres.
1. Refactorisation de JavaScript
En Javascript, je préfère utiliser$.ajax
, tout stocker dans un tableau et le POSTER sur Spring MVC.
2. Refactoring Spring MVC
2.1 Create a POJO to store the Ajax POST data.
public class HostingForm { private boolean display; private boolean cdn; private boolean hosting; private boolean paas; private String whoisPattern; private long id; private String domain; private String name; private String desc; private String tags; private String affLink; private String imageUrl; private String favUrl; //getters and setters
2.2 Accept the Ajax POST data with @RequestBody
@RestController //... @RequestMapping(value = "/path-to/hosting/save", method = RequestMethod.POST) public String updateHosting(@RequestBody HostingForm hostingForm) { //... }
Avec@RequestBody
, Spring mappera automatiquement les données POST versHostingForm
POJO (par nom). Terminé.
Note
Vous êtes intéressé par ce tutoriel -Complete Spring 4 MVC + Ajax Form Post example