我是AJAX的新手,我正尝试配置一种简单的方法以仅使用ajax将数据发布到使用ajax的控制器中JSON
,lambda expressions
除非Java
有人可以告诉我我做这种ajax方法的错误是什么不管用?
控制器
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String addCart(int val1, int val2) {
System.out.println("+++++++++++++++++++++++++++++" + val1);
System.out.println("+++++++++++++++++++++++++++++" + val2);
return "redirect:/viewResult";
}
Ajax /脚本
$(document).on('change', '._someDropDown', function (e) {
var x = this.options[e.target.selectedIndex].text;
var y = $(this).data('idtest');
alert(x);
alert(y);
$.ajax(
{
url: "/HRS/test",
data: {val1: x, val2: y},
method: 'POST'
});
});
请注意这些警报(x和y值)正确显示。我只想将它们发送到控制器。请提出任何建议?
首先,您需要使您的AJAX代码将发送的Controller
接受POST Request
。
然后,您需要在希望从AJAX接受的POJO上添加一个RequestBody注释。
假设您需要发送var x, y
。创建一个这样的类:
public class MyData {
String x;
String y;
// getters/setters/constructor
}
然后,您需要在AJAX调用中创建MyData并传递它。
$(document).on('change', '._someDropDown', function (e) {
var myData = {
"x" : this.options[e.target.selectedIndex].text,
"y" :$(this).data('idtest')
}
.ajax({
type: "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url: "/HRS/test", //assuming your controller is configured to accept requests on this URL
data: JSON.stringify(myData), // This converts the payLoad to Json to pass along to Controller
success :function(result) {
// do what ever you want with data
}
});
最终,您的控制器将变得像:
@RequestMapping(value = "/test", method = RequestMethod.POST)
public @ResponseBody String addCart(@RequestBody MyData data) {
System.out.println(data.getX());
System.out.println(data.getY());
return something;
}
我的知识有些生锈,但是我希望您知道这是如何工作的!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句