현재 팀프로젝트 중에 게시글 목록을 구현하는데 있어 사용된 예시이다.
카테고리를 탭으로 구성하여 각 탭을 누를 때 마다 해당 카테고리의 게시글들을 불러오려고 하는데 spring 책에서 배운 방법은 다음과 같았다.
@GetMapping("BoardTabListAjax")
@ResponseBody
public ResponseEntity <List<BoardVO>> BoardTabListAjax(Criteria cri) {
return new ResponseEntity<>(service.getListWithPagingTabs(cri),HttpStatus.OK);
}
servcie의 getListWithPagingTabs()는 List<BoardVO>를 리턴하도록 만들었다.
그런데 이러면 카테고리별 게시글들은 잘 전송받을 수 있지만 페이징 처리를 위한 정보를 보낼 수가 없었다.
생각한 방법은 다음과 같다.
vo클래스를 하나 새로 만들어 그곳에 BoardVO 리스트와 페이징 정보인 pageDTO를 담아 보낸다.
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);
}
그리하여 잘 받았다 ^^