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