
- DB의 등록된 컬럼들이다
- PIN 컬럼은 메인상단공지를 작성할 때 구분을 짓기위해 선언
- CATEGORY는 하나의 게시판 테이블로 여러개의 게시판을 생성하기위해 선언
Mapper.xml(Oracle)
<!-- 게시글 목록 -->
<select id="lists" resultMap="boardResult">
<![CDATA[
select * from board
]]>
</select>
<!-- 게시글 목록(자유)-->
<select id="free" resultMap="boardResult">
<![CDATA[
select * from board
where category = 1
]]>
</select>
<!-- 게시글 목록(질문) -->
<select id="qna" resultMap="boardResult">
<![CDATA[
select * from board
where category = 2
]]>
</select>
<!-- 게시글 목록(공략) -->
<select id="tip" resultMap="boardResult">
<![CDATA[
select * from board
where category = 3
]]>
</select>
<!-- 게시글 목록(자랑) -->
<select id="brag" resultMap="boardResult">
<![CDATA[
select * from board
where category = 4
]]>
</select>
Controller
//게시판 목록
@GetMapping("/lists")
public void list(Model model) {
log.info("All-list");
model.addAttribute("lists",service.lists());
}
//게시판 목록(자유)
@GetMapping("/free")
public void free(Model model) {
log.info("free-list");
model.addAttribute("free",service.free());
}
//게시판 목록(질문)
@GetMapping("/qna")
public void qna(Model model) {
log.info("qna-list");
model.addAttribute("qna",service.qna());
}
//게시판 목록(자랑)
@GetMapping("/brag")
public void brag(Model model) {
log.info("brag-list");
model.addAttribute("brag",service.brag());
}
//게시판 목록(공략)
@GetMapping("/tip")
public void tip(Model model) {
log.info("tip-list");
model.addAttribute("tip",service.tip());
}
- 게시판 목록 부분 구현이 5가지가 되는 이유는 우선 전체 리스트를 조회하는 것 하나와 , 그 외 카테고리 별로 조회 될 수 있게 나눴습니다.
Service
//게시판 목록
@Override
public List<BoardVO> lists() {
return dao.lists();
}
//게시판 목록(자유)
@Override
public List<BoardVO> free() {
return dao.free();
}
//게시판 목록(질문)
@Override
public List<BoardVO> qna() {
return dao.qna();
}
//게시판 목록(공략)
@Override
public List<BoardVO> tip() {
return dao.tip();
}
//게시판 목록(자랑)
@Override
public List<BoardVO> brag() {
return dao.brag();
}
DAO
//게시판 목록
@Override
public List<BoardVO> lists() {
return session.selectList("mapper.board.lists");
}
//게시판 목록(자유)
@Override
public List<BoardVO> free() {
return session.selectList("mapper.board.free");
}
//게시판 목록(질문)
@Override
public List<BoardVO> qna() {
return session.selectList("mapper.board.qna");
}
//게시판 목록(공략)
@Override
public List<BoardVO> tip() {
return session.selectList("mapper.board.tip");
}
//게시판 목록(자랑)
@Override
public List<BoardVO> brag() {
return session.selectList("mapper.board.brag");
}
JSP
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
- 부트스트랩 링크 및 스크립트 입니다.
<ul class="nav">
<li class="nav-item">
<a class="nav-link" href="${path}/board/lists">전체</a>
</li>
<li class="nav-item">
<a class="nav-link" href="${path}/board/free">자유</a>
</li>
<li class="nav-item">
<a class="nav-link" href="${path}/board/qna">질문</a>
</li>
<li class="nav-item">
<a class="nav-link" href="${path}/board/tip">공략</a>
</li>
<li class="nav-item">
<a class="nav-link" href="${path}/board/brag">자랑</a>
</li>
</ul>
- 우선 공통되는 nav 부분입니다. 이렇게 하나를 만들고 <%@include file="../common/nav.jsp"%> 를 사용해서 각 리스트 화면 상단에 배치를 하였습니다.
<%@include file="../common/nav.jsp"%>
<div class="container" >
<table class="table">
<thead>
<tr>
<td>말머리</td>
<td>제목</td>
<td>닉네임</td>
<td>작성일</td>
<td>조회</td>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${free}">
<tr>
<td>
<c:choose>
<c:when test="${list.category == 1}">자유</c:when>
<c:when test="${list.category == 2}">질문</c:when>
<c:when test="${list.category == 3}">공략</c:when>
<c:when test="${list.category == 4}">자랑</c:when>
</c:choose>
</td>
<td><a href="${path}/board/detail?bno=${list.bno}">${list.title}</a></td>
<td>${list.nickname}</td>
<td>${list.credate}</td>
<td>${list.hit }</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
- 이런식으로 해서 5개의 jsp를 만들어서 사용했습니다
결과화면

'Spring > 커뮤니티 사이트' 카테고리의 다른 글
| [Spring][커뮤니티 사이트]파일 업로드 처리 -1 (0) | 2022.12.13 |
|---|---|
| [Spring][커뮤니티 사이트]게시판 페이징 만들기 (0) | 2022.12.13 |
| [Spring][커뮤니티 사이트]다중 게시판 - 수정 & 삭제 (0) | 2022.12.13 |
| [Spring][커뮤니티 사이트]다중 게시판 - 작성 (0) | 2022.12.13 |
| [Spring][커뮤니티 사이트]다중 게시판 - 상세보기& 조회수 (0) | 2022.12.13 |