[Spring] ajax 두개 이상의 객체 전송

msriver·2020년 7월 24일
0

Spring

목록 보기
16/16

상황

현재 팀프로젝트 중에 게시글 목록을 구현하는데 있어 사용된 예시이다.

카테고리를 탭으로 구성하여 각 탭을 누를 때 마다 해당 카테고리의 게시글들을 불러오려고 하는데 spring 책에서 배운 방법은 다음과 같았다.

@GetMapping("BoardTabListAjax")
@ResponseBody
public ResponseEntity   <List<BoardVO>> BoardTabListAjax(Criteria cri) {
			
	return new ResponseEntity<>(service.getListWithPagingTabs(cri),HttpStatus.OK);
    
}

servcie의 getListWithPagingTabs()는 List<BoardVO>를 리턴하도록 만들었다.

그런데 이러면 카테고리별 게시글들은 잘 전송받을 수 있지만 페이징 처리를 위한 정보를 보낼 수가 없었다.

생각한 방법은 다음과 같다.

  1. vo클래스를 하나 새로 만들어 그곳에 BoardVO 리스트와 페이징 정보인 pageDTO를 담아 보낸다.

  2. Map을 사용해 보낸다

두개 다 시도를 해보았고 다 성공하였다.

두번째 방법은 아래와 같다.

@GetMapping("BoardTabListAjax")
@ResponseBody
public ResponseEntity   <Map<String, Object>> BoardTabListAjax(Criteria cri,Model model) {
		
	Map<String, Object> map = new HashMap<>();
		
	map.put("voList", service.getListWithPagingTabs(cri));
	map.put("pageDto", new PageDTO(cri, service.getTotal(cri)));
		
	return new ResponseEntity<>(map,HttpStatus.OK);
}

그리하여 잘 받았다 ^^

profile
NOBODY

0개의 댓글