0

この JSON を Springs Controller に渡そうとしています:

{"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 を構築する方法がわかりません (これは機能しません)。どんな助けでも大歓迎です。

4

1 に答える 1

2

Request マップ メソッド (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 リクエストでは、Content-Type を明示的に「application/json」に設定しました。

于 2012-05-31T14:49:23.637 に答える