MelonPeach

7.스프링 게시판 만들기 / 게시판 조회 기능 구현

 

이전 포스팅에서 게시판 목록 기능을 구현하였는데요.

이번 포스팅에서는 게시판 조회 기능을 구현하려고합니다.

 

게시판 조회 기능은 게시판 목록에서 제목을 클릭했을때 번호에 해당하는 내용들을 보여주는 페이지 인데요.

 

MP_BOARD테이블을 만들때 BNO에 PRIMARY KEY를 줬던 이유가 게시물을 조회했을때 고유의값이 필요하기 때문입니다. 

 

게시판 목록에서 글 제목으로 게시물을 구분할 수 있을것도 같지만 같은 제목의 게시물을 작성할 수도 있기 때문에 

글 제목만으로는 게시물을 구분할 수 없습니다. 그래서 게시물을 구분할 수 있도록 번호(BNO)가 필요합니다.

 

 

 

 

WHERE BNO = #{bno}를 보시면 WHERE에 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>

 

 

 

 

BoardDAO에 코드를 추가해 줍니다.

 

BoardDAO

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

 

 

 

 

BoardDAOImpl에 코드를 추가해줍니다.

 

BoardDAOImpl

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

 

 

 

 

BoardService에 코드를 추가해줍니다.

 

BoardService

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

 

 

 

 

BoardServiceImpl에 코드를 추가해줍니다.

 

BoardServiceImpl

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

	return dao.read(bno);
}

 

 

 

 

현재 게시판 목록에서는 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";
	}

 

 

 

 

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>

 

 

 

 

src/webapp/WEB_INF/views/board/list.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" action="/board/write">
					<table>
						<tr><th>번호</th><th>제목</th><th>작성자</th><th>등록일</th></tr>
						
						<c:forEach items="${list}" var = "list">
							<tr>
								<td><c:out value="${list.bno}" /></td>
								<td>
									<a href="/board/readView?bno=${list.bno}"><c:out value="${list.title}" /></a>
								</td>
								<td><c:out value="${list.writer}" /></td>
								<td><fmt:formatDate value="${list.regdate}" pattern="yyyy-MM-dd"/></td>
							</tr>
						</c:forEach>
						
					</table>
				</form>
			</section>
			<hr />
		</div>
	</body>
</html>

 

 

서버를 실행시키고 게시판 목록(board/list.jsp)에 접속해서 제목을 클릭하여 들어가면 그 번호에 해당하는 내용들이 나오게됩니다.

 

다음포스팅에서는 게시글 수정과 삭제에 대해서 포스팅하겠습니다.

이 글을 공유합시다

facebook twitter googleplus kakaostory naver