如何通过GET请求将对象发送到Spring?

时间:2011-08-24 15:48:44

标签: java spring jquery spring-mvc

我正在使用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;
}

1 个答案:

答案 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