Spring MVC - рефакторинг jQuery Ajax Post пример
Изучив пример POST и Spring MVC jQuery Ajax, найдите следующие шаблоны:
В Spring MVC используйте@RequestParam
, чтобы принять данные 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 }
Приведенный выше код работает нормально, просто немного странно и сложно поддерживать. И Javascript$.post
, и Spring MVC@RequestParam
имеют дело со слишком большим количеством параметров.
1. Рефакторинг JavaScript
В Javascript я предпочитаю использовать$.ajax
, хранить все в массиве и отправлять его в Spring MVC.
2. Рефакторинг 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) { //... }
С@RequestBody
Spring автоматически сопоставляет данные POST с POJOHostingForm
(по имени). Готово.
Note
Этот урок вас заинтересовал -Complete Spring 4 MVC + Ajax Form Post example