我正在使用Spring MVC 3,我想要一个AJAX调用向控制器发送一个对象数组。我希望我的Java看起来像这样:
@RequestMapping (value = "/data/save/faults" method = RequestMethod.GET)
public void saveFaultsGET
(
@RequestParam ("faults") FaultType[] types
) { }
注意FaultType
是我写的对象。我正在使用jQuery,我不确定如何格式化我的请求URL来实现这一点。知道这是不可能的也是有帮助的。
编辑 FaultType
看起来像这样(省略了getters和setter):
public class FaultType {
private String m_type;
private boolean m_isTrip;
private boolean m_isRelay;
private boolean m_isNonRelay;
}
答案 0 :(得分:1)
这是非常好的介绍:http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/
ajax调用看起来应该是这样的:
<c:url var="myURL" value="/data/save/faults" />
...
jq.ajax({
cache:false,
type: 'POST',
url: "${myURL}",
data:jsonFaultType,
contentType: "application/json",
success: function(data) {
// yourFunction to call on success eg:
alert(data);
}
});
您的控制器签名应如下所示:
@RequestMapping (value = "/data/save/faults" method = RequestMethod.POST)
public @ResponseBody String create(@RequestBody FaultType faultType){
...
}
为什么要使用get请求发送对象,POST是将数据发布到服务器的事实方法。此外,您不必返回响应体,也可以返回 modelAndView 。