[英]How to send ajax request data as a class to Spring mvc controller?
I am sending an AJAX request to a Spring MVC controller, like this:我正在向 Spring MVC 控制器发送 AJAX 请求,如下所示:
var filters = {
visual: visual,
Name: params['Name'],
Address: params['Address'],
documentType: params['documentType'],
itemQualifier: getItemQualifier(),
itemIdentifier: params['itemIdentifier'],
currency: getCurrency(),
sellSide: getSellSide()
};
$.ajax({
type: "POST",
url: "/reports/savefilters",
data: filters,
success: function(response) {
alert('filters saved successfully: ' + response);
},
error: function(e) {
alert('Error while saving filters: ' + e.message);
}
});
@RequestMapping(value = "/savefilters", method = RequestMethod.POST)
public @ResponseBody String saveFilters(@RequestParam("visual") String visual, @RequestParam(value = "Name[]", required = false) String[] Name,
@RequestParam(value = "Address[]", required = false) String[] Address, @RequestParam(value = "documentType[]", required = false) String[] documentType,
@RequestParam("itemQualifier") String itemQualifier, @RequestParam(value = "itemIdentifier[]", required = false) String[] itemIdentifier, @RequestParam("currency") String currency,
@RequestParam("sellSide") String sellSide, HttpServletRequest request)
{
try
{
System.out.println("saveFilters");
new DisplayService().saveFilters("ID", visual, Name, Address, documentType, itemQualifier, itemIdentifier, currency, sellSide);
return "success";
}
catch (Exception ex)
{
return "error occured while inserting/updating db";
}
}
I want to pass all these arguments as a class instead of sending like this.我想将所有这些参数作为一个类传递,而不是像这样发送。
How can I pass as a class from an AJAX call and how do I receive it in the Spring MVC controller code?如何从 AJAX 调用中作为类传递,以及如何在 Spring MVC 控制器代码中接收它? Any suggestions please?
请问有什么建议吗? Thanks.
谢谢。
You can use the request object and using it you can get all the params as below. 您可以使用请求对象,并使用它可以获取以下所有参数。
public @ResponseBody String saveFilters(HttpServletRequest request){
String visual = request.getParameter("visual")
}
Just create a Java class matching to your Javascript variable, filters
. 只需创建一个与您的Javascript变量
filters
相匹配的Java类即可。
public class Filters {
private String name;
private List<String> address;
private List<String> documentType;
private String itemQualifer;
private String itemIdentifier;
private String Currency;
private String sellSide;
// getters and setters must exists but I omitted for brevity.
}
MVC Controller: MVC控制器:
@RequestMapping(value = "/savefilters", method = RequestMethod.POST)
public @ResponseBody String saveFilters(Filters filters) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.