ㅎㅇㅎㅇ

 

List.jsp

페이지 하단에 previous , next 를 완성시켜줍니다.

버튼을 누르면 page값을 변동하여 이동하게 되는거같네요

 

jstl 문법 : ${param.변수명} 으로 변수를 바로 사용할 수 있다.

( 이렇게 말해야 되는게 맞는가 ? )

<ul class="pagination justify-content-center">
		<li class="page-item"><a class="page-link" href="/blog/board?cmd=list&page=${param.page-1}">Previous</a></li>
		<li class="page-item"><a class="page-link" href="/blog/board?cmd=list&page=${param.page+1}">Next</a></li>
	</ul>

 

Index.jsp

인덱스 페이지도 페이지 관리를 해주고.

<%
	RequestDispatcher dis = 
		request.getRequestDispatcher("board?cmd=list&page=0"); 
	dis.forward(request, response); // 톰켓이 생성하는 request와 response를 재사용한다. 다시 접근하는게 아니라 내부적으로 움직인다는 뜻.
%> 

 

 

BoardDao.java

LIMIT 을 추가해서 한 페이지에 게시글 4개만 불러와지도록 findAll 함수를 수정하겠습니다.

page 파라미터가 생겼어요.

public List<Board> findAll(int page){
		String sql = "SELECT * FROM  board ORDER BY id DESC LIMIT ?, 4"; // 0,4   4,4   8,4
		Connection conn = DB.getConnection();
		PreparedStatement pstmt = null;
		ResultSet rs  = null;
		List<Board> boards = new ArrayList<>();
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, page*4); // 0 -> 0, 1 ->4, 2->8
			rs =  pstmt.executeQuery();

			// Persistence API
			while(rs.next()) { // 커서를 이동하는 함수
				Board board = Board.builder()
						.id(rs.getInt("id"))
						.title(rs.getString("title"))
						.content(rs.getString("content"))
						.readCount(rs.getInt("readCount"))
						.userId(rs.getInt("userId"))
						.createDate(rs.getTimestamp("createDate"))
						.build();
				boards.add(board);	
			}
			return boards;
		} catch (Exception e) {
			e.printStackTrace();
		} finally { // 무조건 실행
			DB.close(conn, pstmt, rs);
		}
		
		return null;
	}

BoardService.java

page 파라미터가 생겼어요.

public List<Board> 글목록보기(int page){
		return boardDao.findAll(page);
	}

 

BoardController.java

page 파라미터가 생겼어요.

cmd=list 에서 page를 함께 받는것이기 때문에 이렇게 수정했어요.

else if (cmd.equals("list")) {
			int page = Integer.parseInt(request.getParameter("page"));  // 최초 : 0, Next : 1, Next: 2
			List<Board> boards = boardService.글목록보기(page);
			request.setAttribute("boards", boards);

			RequestDispatcher dis = request.getRequestDispatcher("board/list.jsp");
			dis.forward(request, response);
		}

 

 

 

첫 페이지

 

 

마지막페이지

 

저는 미리 완성된 블로그로 사진을 캡쳐하고있어서, 양 끝 페이지에 버튼이 disable 되었습니다.

다음 게시물에서 소개해드리겠습니다.

+ Recent posts