2012-05-31 33 views
0

我想通過這個JSON到泉控制器:傳遞JSON數組到Java泉控制器

{"orderList":["IS_cb-A1-3","IS_cb-A1-4","IS_cb-A1-1","IS_cb-A1-2","IS_cb-A1-3"]} 

這裏是方法聲明:

public @ResponseBody JsonResponse orderCertificates(@ModelAttribute CertificateRequest certificateOrder, BindingResult result) 

這裏是豆:

public class CertificateRequest { 
private String[] orderList = null; 
private List<String> mbsResponse = new ArrayList<String>(); 

public String[] getOrderList() { 
    return orderList; 
} 

public void setOrderList(String[] orderList) { 
    this.orderList = orderList; 
} 

public List<String> getMbsResponse() { 
    return mbsResponse; 
} 

public void setMbsResponse(List<String> mbsResponse) { 
    this.mbsResponse = mbsResponse; 
} 
} 

我不知道如何構建這個bean(這是行不通的),以便我可以訪問這個數組。任何幫助,將不勝感激。

回答

2

請求映射方法的這個簽名(3.1 Spring MVC中)應該爲你工作:

@RequestMapping(value="/cert", consumes="application/json", produces="application/json") 
public @ResponseBody CertificateRequest orderCertificates(@RequestBody CertificateRequest certificateOrder){ 
// 
} 

我已標記的CertificateRequest與@RequestBody和刪除BindingResult

更新:發佈代碼,這是我的方法看起來如何 -

@RequestMapping(value="/cert", consumes="application/json", produces="application/json") 
public @ResponseBody CertificateRequest orderCertificates(@RequestBody CertificateRequest certificateOrder){ 
    System.out.println(certificateOrder); 
    return certificateOrder; 
} 

,並在HTTP請求中,我已經明確設置內容類型爲「application/JSON」

+0

這不起作用好多了。 – user1269651

+0

當orderList是一個字符串時:沒問題。它需要是一個數組,當它停止工作時。 – user1269651

+0

是的,它也是一個數組,在我的機器中,這是在方法體中打印的字符串:'CertificateRequest [orderList = [IS_cb-A1-3,IS_cb-A1-4,IS_cb-A1-1,IS_cb-A1 -2,IS_cb-A1-3],mbsResponse = []]' –