Spring MVC - Refactoring eines Beispiels für jQuery Ajax Post
Wenn Sie ein jQuery Ajax-Formular-POST- und Spring MVC-Beispiel überprüfen, müssen Sie die folgenden Muster ermitteln:
Verwenden Sie in Spring MVC@RequestParam, um die Ajax-POST-Daten zu akzeptieren.
@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
}
Der obige Code funktioniert gut, nur ein bisschen seltsam und schwer zu pflegen. Sowohl Javascript$.post als auch Spring MVC@RequestParam verarbeiten zu viele Parameter.
1. Refactoring von JavaScript
In Javascript bevorzuge ich$.ajax, speichere alles in einem Array und poste es an 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) {
//...
}
Mit@RequestBody ordnet Spring die POST-Daten automatischHostingForm POJO (nach Namen) zu. Erledigt.
Note
Sie interessieren sich für dieses Tutorial -Complete Spring 4 MVC + Ajax Form Post example