2012-05-31 1 views
0

: 여기나는 스프링스 컨트롤러이 JSON 전달하는 데 노력하고

{"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; 
} 
} 

이 배열을 얻을 수 있도록이 빈을 빌드하는 방법 (작동하지 않음)을 알지 못합니다. 어떤 도움을 주시면 감사하겠습니다. @RequestBody

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

내가 태그 한 CertificateRequest를하고 BindingResult을 제거 :

답변

2

(3.1 스프링 MVC에서) 요청 매핑 방법이 서명은 당신을 위해 작동합니다.

업데이트 : 코드를 게시, 이건 내 방법은 모습입니다 -

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

및 HTTP 요청에서, 내가 명시 적으로이 작동하지 않습니다 "응용 프로그램/JSON"

+0

하는 콘텐츠 형식을 설정 한 훨씬 낫다. – user1269651

+0

orderList가 문자열 일 때 : 아무런 문제가 없습니다. 작동을 멈 추면 Array가되어야합니다. – 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 = []]' –

관련 문제