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