뷰와 게시글 업로드 코드 구분시
getBoardList.jsp – 게시글 목록 페이지<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글목록</title>
<style>
.container {
text-align: center;
}
.container table {
margin: 0 auto;
border-collapse: collapse;
}
table, th, td {
border: 1px solid #aaa;
padding: 8px;
}
</style>
</head>
<body>
<div class="container">
<h1>게시글 목록</h1>
<table>
<tr>
<th width="100">번호</th>
<th width="200">제목</th>
<th width="150">작성자</th>
<th width="150">등록일</th>
<th width="100">조회수</th>
</tr>
<c:forEach var="board" items="${boardList}">
<tr>
<td>${board.seq}</td>
<td><a href="getBoard?seq=${board.seq}">${board.title}</a></td>
<td>${board.writer}</td>
<td>
<fmt:formatDate value="${board.createDate}" pattern="yyyy-MM-dd" />
</td>
<td>${board.cnt}</td>
</tr>
</c:forEach>
</table>
<br>
<a href="insertBoardView">새글등록</a>
</div>
</body>
</html>
getBoard.jsp – 게시글 상세 보기 및 수정<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시글 상세</title>
</head>
<body>
<center>
<h3>게시글 상세</h3>
<hr>
<form action="updateBoard" method="post">
<input name="seq" type="hidden" value="${board.seq}">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="orange" width="70">제목</td>
<td><input type="text" name="title" value="${board.title}"></td>
</tr>
<tr>
<td bgcolor="orange">작성자</td>
<td><input type="text" name="writer" size="10" value="${board.writer}"></td>
</tr>
<tr>
<td bgcolor="orange">등록일</td>
<td><fmt:formatDate value="${board.createDate}" pattern="yyyy-MM-dd" /></td>
</tr>
<tr>
<td bgcolor="orange">조회수</td>
<td>${board.cnt}</td>
</tr>
<tr>
<td bgcolor="orange">내용</td>
<td><textarea cols="40" rows="10" name="content">${board.content}</textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="글 수정"></td>
</tr>
</table>
</form>
<hr>
<a href="insertBoardView">글등록</a>
<a href="deleteBoard?seq=${board.seq}">글삭제</a>
<a href="getBoardList">글목록</a>
</center>
</body>
</html>
BoardController.java – Spring 컨트롤러package ruby.paper.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import ruby.paper.domain.Board;
import ruby.paper.service.BoardService;
@Controller
public class BoardController {
@Autowired
private BoardService boardService;
// 게시글 목록 조회
@GetMapping("/getBoardList")
public String getBoardList(Model model) {
List<Board> boardList = boardService.getBoardList();
model.addAttribute("boardList", boardList);
return "getBoardList";
}
// 글 작성 폼 이동
@GetMapping("/insertBoardView")
public String insertBoardView() {
return "insertBoard";
}
// 글 등록 처리
@PostMapping("/insertBoard")
public String insertBoard(Board board) {
boardService.insertBoard(board);
return "redirect:getBoardList";
}
// 게시글 상세 보기
@GetMapping("/getBoard")
public String getBoard(Board board, Model model) {
model.addAttribute("board", boardService.getBoard(board));
return "getBoard";
}
// 게시글 수정 처리
@PostMapping("/updateBoard")
public String updateBoard(Board board) {
boardService.updateBoard(board);
return "redirect:getBoardList";
}
// 게시글 삭제 처리
@GetMapping("/deleteBoard")
public String deleteBoard(Board board) {
boardService.deleteBoard(board);
return "redirect:getBoardList";
}
}
insertBoard.jsp – 새 게시글 작성 폼<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>새 글 등록</title>
</head>
<body>
<center>
<h3>새 글 등록</h3>
<hr>
<form action="insertBoard" method="post">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="orange" width="70">제목</td>
<td><input type="text" name="title" required></td>
</tr>
<tr>
<td bgcolor="orange">작성자</td>
<td><input type="text" name="writer" size="10" required></td>
</tr>
<tr>
<td bgcolor="orange">내용</td>
<td><textarea cols="40" rows="10" name="content" required></textarea></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="글 등록"></td>
</tr>
</table>
</form>
<hr>
<a href="getBoardList">글목록</a>
</center>
</body>
</html>
getBoardList.jsp): 게시글 목록을 출력하고 각 게시글을 클릭하면 상세보기 페이지로 이동합니다.getBoard.jsp): 게시글의 상세 내용과 함께 수정/삭제 링크가 제공됩니다.insertBoard.jsp): 새 게시글을 작성할 수 있는 폼을 제공합니다.BoardController.java): 각 요청을 처리하고, 비즈니스 로직을 수행하는 컨트롤러입니다. 게시글 목록 조회, 상세보기, 등록, 수정, 삭제를 처리합니다.