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