[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 페이지에서 게시물 제목을 클릭해보겠습니다!
게시물이 제대로 조회가 되네요! 목록 버튼을 누르면 다시 전체 목록이 보여집니다!
아직 수정 버튼과 삭제 버튼을 눌렀을 때 활성화되도록 구현은 하지 않았는데요~!
다음 장에서 바로 해보도록 하겠습니다!