[Spring] 16.SpringProject-조회기능구현




조회기능



이번 장에서는 전체목록에 있는 글의 제목을 누르면 해당 내용이 보이게하는 조회기능을 구현하겠습니다!

먼저 BoardController에 read 메소드를 GET방식으로 구현한 후 read.jsp 파일을 만들겠습니다!

또, read.jsp 에 삭제, 수정, 목록 버튼도 만들어보겠습니다!


BoardController의 기능 추가



조회는 다음과 같이 구현할 것입니다.

/board/listAll.jsp에서 title에 ‘/board/read?bno=글번호’ 링크를 걸어 title을 누르면 조회를 담당하는 BoardController 메소드 read를 호출되게 할 것입니다!

read 메소드는 DB에서 해당 글번호에 해당하는 데이터를 가져와 사용자에게 보여줍니다!

따라서 read 메소드는 글번호에 따른 데이터를 가져와야하므로 bno를 매개변수로 받습니다!


다음과 같이 GET 방식의 read 메소드를 먼저 BoardController에 추가해볼까요?


//BoardController.java


package com.gguri.swp.controller;

import java.util.List;
import javax.inject.Inject;

...

@Controller
@RequestMapping("/board/*")
public class BoardController {
	private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
	
	@Inject
	private BoardService service;
	
	...
    
	@RequestMapping(value = "/read", method = RequestMethod.GET)
	public void read(@RequestParam("bno") Integer bno, Model model) throws Exception{
		logger.info("read GET...");
		BoardVO board = service.read(bno);
		model.addAttribute(board);
	}
	...
}



read 메소드는 service객체의 read 메소드를 호출해서 해당 번호의 게시물을 mysql 서버의 board 테이블에서 조회하고 BoardVO에 담아 가져옵니다!

그리고 가져온 BoardVO를 Model에 추가하여 read.jsp로 넘기게 됩니다~!


조회 VIEW 구현



/src/main/webapp/WEB-INF/views/board/ 에 read.jsp를 다음과 같이 만들어줍니다!

다음 장에서 구현할 수정, 삭제를 위해 버튼을 추가했고, 목록으로 돌아가는 버튼 또한 추가했습니다!


<!-- read.jsp -->


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" 
	pageEncoding="UTF-8"%>

	
<%@include file="../include/header.jsp" %>

<div class="box-body">
	<span><b>글번호:</b> ${boardVO.bno}</span>	
	
    	<div class="form-group">
		<label for="title">Title</label>
		<input type="text" id="title" name="title" class="form-control" value="${boardVO.title}" readonly="readonly"/>		
	</div>
    
	<div class="form-group">
		<label for="content">Content</label>
		<textarea name="content" id="content" class="form-control" rows="3" readonly="readonly">${boardVO.content}</textarea>		
	</div>
    
	<div class="form-group">
		<label for="writer">Writer</label>
		<input type="text" id="writer" name="writer" class="form-control" value="${boardVO.writer}" readonly="readonly"/>		
	</div>
    
</div>

<div>
	<!-- 목록 버튼 -->
	<a href="/board/listAll" class="btn btn-primary">LIST ALL</a>
	<!-- 수정 버튼 -->
	<a href="/board/update?bno=${boardVO.bno}" class="btn btn-warning">update</a>
	<!-- 삭제 버튼 -->
	<button id="btn-remove" class="btn btn-danger">delete</button>
</div>
	
<%@include file="../include/footer.jsp" %>



톰캣을 구동하고 한 번 /board/listAll 페이지에서 게시물 제목을 클릭해보겠습니다!


image




게시물이 제대로 조회가 되네요! 목록 버튼을 누르면 다시 전체 목록이 보여집니다!

아직 수정 버튼과 삭제 버튼을 눌렀을 때 활성화되도록 구현은 하지 않았는데요~!

다음 장에서 바로 해보도록 하겠습니다!