게시글 리스트 만들기
getNext()는 다음에 쓰여질 게시글 번호이기 때문에 -1
Limit 10을 주었기 때문에 한 페이지에는 게시글 10개가 담김.
따라서 가장 최신의 게시물부터 10번째 이전의 게시물까지 가져옴
public ArrayList<Bbs> getList(int pageNumber) {
String SQL = "SELECT BBS WHERE bbsID < ? AND bbsAvailable = 1 ORDER BY bbsID DESC LIMIT 10";
ArrayList<Bbs> list = new ArrayList<Bbs>();
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext() - (pageNumber - 1) * 10);
rs = pstmt.executeQuery();
while(rs.next()) {
Bbs bbs = new Bbs();
bbs.setBbsID(rs.getInt(1));
bbs.setBbsTitle(rs.getString(2));
bbs.setUserID(rs.getString(3));
bbs.setBbsDate(rs.getString(4));
bbs.setBbsContent(rs.getString(5));
bbs.setBbsAvailabe(rs.getInt(6));
list.add(bbs);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
게시판 목록 jsp
for문으로 전체 게시글 리스트 출력
<tbody>
<%
BbsDAO bbsDAO = new BbsDAO();
ArrayList<Bbs> list = bbsDAO.getList(pageNumber);
for(int i = 0; i < list.size(); i++) {
%>
<tr>
<td><%= list.get(i).getBbsID() %></td>
<td><a href="view.jsp?bbsID=<%= list.get(i).getBbsID() %>"><%= list.get(i).getBbsTitle() %></a></td>
<td><%= list.get(i).getUserID() %></td>
<td><%=list.get(i).getBbsDate().substring(0, 11) + list.get(i).getBbsDate().substring(11, 13) + "시"
+ list.get(i).getBbsDate().substring(14, 16) + "분"%></td>
</tr>
<%
}
%>
</tbody>
nextPage 메서드를 생성하여 한 페이지에 표시될 수 있는 게시글 수가 넘어가면 true 반환
public boolean nextPage(int pageNumber) {
String SQL = "SELECT * FROM BBS WHERE bbsID < ? AND bbsAvailable = 1";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext() - (pageNumber - 1) * 10);
rs = pstmt.executeQuery();
if(rs.next()) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
pageNumber 기본 값 1 넣기
<body>
<%
String userID = null;
if(session.getAttribute("userID") != null) {
userID = (String) session.getAttribute("userID");
}
int pageNumber = 1;
if(request.getParameter("pageNumber") != null) {
pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
}
%>
nextPage 메서드 이용
<%
if(pageNumber != 1) {
%>
<a href="bbs.jsp?pageNumber=<%=pageNumber -1%>" class="btn btn-success btn-arrow-left">이전</a>
<%
} if(bbsDAO.nextPage(pageNumber +1)) {
%>
<a href="bbs.jsp?pageNumber=<%=pageNumber +1%>" class="btn btn-success btn-arrow-left">다음</a>
<%
}
%>
'강의 > JSP 게시판 만들기' 카테고리의 다른 글
[JSP 게시판 만들기] 13. 게시글 수정 및 삭제 기능 구현하기 (0) | 2023.12.10 |
---|---|
[JSP 게시판 만들기] 12. 게시판 보기 기능 구현하기 (0) | 2023.12.10 |
[JSP 게시판 만들기] 10. 글쓰기 기능 구현하기 (1) | 2023.12.08 |
[JSP 게시판 만들기] 9. 게시판 데이터베이스 구축하기 (1) | 2023.12.08 |
[JSP 게시판 만들기] 8. 게시판 메인 페이지 디자인 (1) | 2023.12.08 |