2011-08-24 142 views
0

我正在使用Spring MVC 3,並且我想進行一次AJAX調用,將一個對象數組發送到控制器。我想我的Java看起來像這樣:如何通過GET請求將對象發送給Spring?

@RequestMapping (value = "/data/save/faults" method = RequestMethod.GET) 
public void saveFaultsGET 
(
    @RequestParam ("faults") FaultType[] types 
) { } 

注意FaultType是一個對象,我寫的。我正在使用jQuery,我不知道如何格式化我的請求URL來實現這一點。知道這是不可能的也是有幫助的。

編輯FaultType看起來像這樣(省略getter和setter):

public class FaultType { 
    private String m_type; 
    private boolean m_isTrip; 
    private boolean m_isRelay; 
    private boolean m_isNonRelay; 
} 

回答

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

+0

我使用GET請求,因爲它爲我工作,我知道它爲什麼工作。 – Nik

+0

@尼克不夠公平,他們都應該工作。 – NimChimpsky