프로그래밍/Spring

[게시판] 6. 게시판 조회 기능 구현

daykim 2021. 12. 12. 16:50

본 게시물은 아래 링크를 정리한 내용입니다.

 

Coala Spring Study

A new tool for teams & individuals that blends everyday work apps into one.

eminent-track-b16.notion.site

 

게시판 조회 기능

게시판 목록에서 제목을 클릭시 번호에 해당하는 내용을 보여주는 페이지를 띄워주는 것

PRIMARY KEY로 지정한 BNO를 통해 게시물을 조회할 것이다.

 

1. 제목 클릭시 해당 BNO 값을 통해 게시물 조회하는 쿼리를 BoardMapper.xml에 추가

	<select id="read" parameterType="int" resultType="kr.co.vo.BoardVO">
		SELECT	BNO
			  , TITLE
			  , CONTENT
			  , WRITER
			  , REGDATE
		 FROM MP_BOARD
		 WHERE BNO = #{bno}
	</select>

 

2. boardDAO.java에 코드 추가

// 게시물 조회
public BoardVO read(int bno) throws Exception;

 

3. BoardDAOImpl.java에 코드 추가

// 게시물 조회
@Override
public BoardVO read(int bno) throws Exception {
		
	return sqlSession.selectOne("boardMapper.read", bno);
}

 

4. BoardService.java에 코드 추가

// 게시물 목록 조회
public BoardVO read(int bno) throws Exception;

 

5. BoardServiceImpl.java에 코드 추가

// 게시물 목록 조회
@Override
public BoardVO read(int bno) throws Exception {

	return dao.read(bno);
}

 

6. BoardController.java에서 게시판 목록에 있는 BNO 값 불러오기

BNO 값들은 BoardVO에 들어있다.
때문에 서비스 실행시 클릭한 번호를 넣어주어 read 라는 이름으로 값을 저장한다.

	// 게시판 조회
	@RequestMapping(value = "/readView", method = RequestMethod.GET)
	public String read(BoardVO boardVO, Model model) throws Exception{
		logger.info("read");
		
		model.addAttribute("read", service.read(boardVO.getBno()));
		
		return "board/readView";
	}

 

7. src/webapp/WEB_INF/views/board에 readView.jsp 파일을 만들고 다음 코드 추가

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
	<head>
	 	<title>게시판</title>
	</head>
	<body>
	
		<div id="root">
			<header>
				<h1> 게시판</h1>
			</header>
			<hr />
			 
			<nav>
			  홈 - 글 작성
			</nav>
			<hr />
			
			<section id="container">
				<form role="form" method="post">
					<table>
						<tbody>
							<tr>
								<td>
									<label for="bno">글 번호</label><input type="text" id="bno" name="bno" value="${read.bno}"/>
								</td>
							</tr>	
							<tr>
								<td>
									<label for="title">제목</label><input type="text" id="title" name="title" value="${read.title}"/>
								</td>
							</tr>	
							<tr>
								<td>
									<label for="content">내용</label><textarea id="content" name="content"><c:out value="${read.content}" /></textarea>
								</td>
							</tr>
							<tr>
								<td>
									<label for="writer">작성자</label><input type="text" id="writer" name="writer" value="${read.writer}" />
								</td>
							</tr>
							<tr>
								<td>
									<label for="regdate">작성날짜</label>
									<fmt:formatDate value="${read.regdate}" pattern="yyyy-MM-dd"/>					
								</td>
							</tr>		
						</tbody>			
					</table>
				</form>
			</section>
			<hr />
		</div>
	</body>
</html>

 

8. src/main/webapp/WEB_INF/views/board/list.jsp을 열고 코드를 수정한다.

							<td>
								<a href="/board/readView?bno=${list.bno}"><c:out value="${list.title}" /></a>
							</td>

 

9. 확인하기

1) 서버 실행

2) localhost:8080/board/list 접속

3) 목록에 있는 제목 클릭

4) 아래와 같이 해당 내용 나오면 성공