상세 컨텐츠

본문 제목

Ajax 리턴 값으로 객체 리스트 받기 (ArrayList 객체)

Spring

by husks 2015. 6. 18. 09:53

본문

반응형


Ajax로 데이터를 가져올때 해당 값이 리스트 안에 객체값이 있을때 가져오는 방식을 적어보겠습니다.


java에서 일반적으로 객체를 만들때 변수를 선언하고 getters, setters 를 선언합니다.


웹에서 객체의 변수명을 통해 값을 가져올수 있습니다.


웹소스의 16라인과 java소스 28라인을 확인해 주세요.



웹 소스 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//검색버튼 클릭
    $("#searchButton").click(function(){
        var objParams = {
                searchCd : $("input[name=searchCd]").val() //검색할 코드 (실제로 예제에서는 사용 안함)
        }
 
        var values = []; //ArrayList 값을 받을 변수를 선언
 
        //검색할 코드를 넘겨서 값을 가져온다.        
        $.post(
            "http://www.test.com/get"
            objParams,
            function(retVal) {
                if(retVal.code == "OK") { //controller에서 넘겨준 성공여부 코드
                    
                    values = retVal.bookList ; //java에서 정의한 ArrayList명을 적어준다.
                    
                    $.each(values, function( index, value ) {
                       console.log( index + " : " + value.name ); //Book.java 의 변수명을 써주면 된다.
                    });
                    
                    alert("성공");
                }
                else {
                    alert("실패");
                }                    
            }
        );
        
    });



java 소스 입니다. (controller)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@RequestMapping(value="http://www.test.com/get", method=RequestMethod.POST)
    @ResponseBody
    public Object getBookInfo(@RequestParam Map<String,Object> map) {
        
        String searchCd = (String) map.get("searchCd");    //검색코드
        
        //실제로 해당 부분은 서비스에서 처리 해야 하지만 그냥 Controller에서 처리
        //검색코드를 조건으로 값을 가져 와야 하는데 설명을 위해 임의적으로 값을 셋팅
 
        List<Book> bookList = new ArrayList<Book>();
        Book book = new Book();
        
        book.setName("홍길동전");
        book.setPrice(100);
        
        bookList.add(book);
        
        book = new Book();
        
        book.setName("레미제라블");
        book.setPrice(300);
        
        bookList.add(book);
 
        
        Map<String, Object> retVal = new HashMap<String, Object>();
        
        retVal.put("bookList", bookList); //bookList란 키로 bookList의 값을 넣어줍니다. (웹에서 bookList키로 추출
        
        retVal.put("code""OK");
        
        return retVal;
        
    }



pom.xml 에 추가 해 줍니다.

1
2
3
4
5
6
<!-- Jackson JSON Mapper -->
<dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
</dependency>



반응형

관련글 더보기

댓글 영역