게시판 페이징 RowBounds적용

JEONG SUJIN·2022년 12월 30일
0
  • 페이징기법을 적용
  • 페이징은 게시글의 개수가 너무 많을 때 목록 한 페이지가 다 보여주기 어렵기 때문에 페이지당 개수를 정해놓고 페이지별로 글 목록보여주는 기법
  • 데이터베이스 쿼리문에서 처리하나 Spring MVC은 페이징처리를 쉽게 할 수 있도록 지원

option.properties

page.listcnt = 10
page.paginationcnt = 10

BoardController.java

page 파라미터추가 (디폴트값은 1페이지)
게시글 리스트를 가져올 때 page를 매개변수로 입력

@GetMapping("/main")
	public String main(@RequestParam("board_info_idx") int board_info_idx, Model model,@RequestParam(value = "page", defaultValue = "1") int page)  {
		
//생략
		List<ContentBean> contentList = boardService.getContentList(board_info_idx, page);
		model.addAttribute("contentList", contentList);
		
		return "board/main";
		
	}

BoardService.java

@Value("${page.listcnt}")
private int page_listcnt;
	
@Value("${page.paginationcnt}")
private int page_paginationcnt;


//페이지에 해당하는 글들을 가져온다.
public List<ContentBean> getContentList(int board_info_idx, int page){
		//시작인덱스 = (페이지번호 -1) * 10
		int start = (page-1) * page_listcnt;
		//마이바티스의 RowBounds 클래스를 사용해 가져 올 글시작 번호, 가져올 개수로 설정
		RowBounds rowBounds = new RowBounds(start, page_listcnt);
		return boardMapper.getContentList(board_info_idx, rowBounds);
	}

BoardMapper.java

마이바티스에서 Select로 검색 결과에서 필요한 게시물 (rowBounds) 설정된 만큼 가져온다.

List<ContentBean> getContentList(int board_info_idx, RowBounds rowBounds);
	

주소를 입력하고 들어가면 제대로 페이징처리가 된걸 볼수있다.!

profile
기록하기

0개의 댓글