asdf
85
2019-04-15 17:57:32
3
103

ajax json 배열 객체를 자바 컨트롤러에서 파라미터를 받고 싶은데요..


안녕하세요  ajax json  배열객체 관련 질문드립니다

$.ajax({

method : 'POST',

url : 'jsonAjax.do',

contentType: 'application/json',

traditional : true,

data : {

'coordsStr' : coordsStr

},

success : function(data){

alert("success==" + data);

console.log("success data = " + data);

},

error : function(request, status, error){

alert("error ==" + error);

console.log("error data = " + data);

}

});

//위 소스가  ajax 로 json 배열객체를 보내는 소스구요


[{"ib":126.92399750183196,"jb":37.63986295730568},{"ib":126.92866506314725,"jb":37.640334383714304},{"ib":126.92835048277156,"jb":37.637559160259514},{"ib":126.91928729177344,"jb":37.63697667792046}]

이런 json 배열 객체를 자바 컨트롤러에서 사용할려면 

찾아보니 @ResponseBody 이거 사용하라는데 해봣는데 소스를 잘못 참고 한건지 잘되지않아서요

    @RequestMapping(value = "/jsonAjax.do")

    public @ResponseBody Object ajaxJson(@RequestParam(value="coordsStr", required=false) String coordsStr) {  

..

.내용

.

..

혹시 저 메소드 선언중에 잘못된게 잇을까요?


0
0
  • 답변 3

  • 사는게힘듭니다
    1k
    2019-04-15 18:01:59 작성 2019-04-15 18:02:36 수정됨

    @ResponseBody를 public 사이에 두지말고

    RequestMapping 바로 밑줄에다 넣어주세요

    그리고 배열로 받고싶으셨으면 String이 아니라 ArrayList로 받으셔야할거고


    메소드 매개변수에

    post방식으로만 접근이가능하는 소스가없네욤~


    그리고 ajax에서 url주소는 컨텍스트루트명까지 입력해주셔야합니다.

    0
  • full
    244
    2019-04-15 18:04:31
    0
  • brendel
    30
    2019-04-15 18:10:55

    일단 RequestMapping의 method를 POST로 명시하거나 PostMapping 애노테이션을 써야 합니다(클라이언트가 POST 요청을 하고 있으니까).

    RequestParam 애노테이션은 URL의 쿼리스트링을 매핑할 때 씁니다. 클라이언트에서 요청 몸체 안에 coordStr 이 있으니까, RequestBody 애노테이션을 써서 객체로 받아야 합니다.

    프론트엔드 코드를 서버에 맞추거나, 백엔드 코드를 바꿔야 겠네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.