게시글 삭제 기능
boardContents.jsp
<a class="btn btn-warning" href="boardDelete.do?idx=${vo.idx}">삭제</a>
boardController.java (class)
@RequestMapping("/boardDelete.do")
public String boardDelete(@RequestParam("idx") int idx) {
System.out.println("게시글 삭제 기능");
mapper.boardDelete(idx);
return "redirect:boardList.do";
}
boardMapper.java (interface)
@Mapper
public interface BoardMapper {
@Delete("DELETE FROM BOARD WHERE IDX = #{idx}")
public void boardDelete(int idx);
}
게시글 수정 화면 이동 기능
boardContents.jsp
<a class="btn btn-info" href="boardUpdateForm.do?idx=${vo.idx}">수정</a>
boardController.java (class)
@RequestMapping("/boardUpdateForm.do")
public String boardUpdateForm(@RequestParam("idx") int idx, Model model) {
System.out.println("게시글 수정화면 이동 기능");
Board vo = mapper.boardContents(idx);
model.addAttribute("vo", vo);
return "boardUpdateForm";
}
게시글 수정 기능
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>boardUpdateForm.jsp</title>
</head>
<body>
<div class="container">
<h2>Spring MVC01</h2>
<div class="panel panel-default">
<div class="panel-heading">Board</div>
<div class="panel-body">
<form action="boardUpdate.do" method="post">
<input type="hidden" name="idx" value="${vo.idx}">
<table class="table">
<tr>
<td>제목</td>
<td><input class="form-control" type="text" name="title" value="${vo.title}"></td>
</tr>
<tr>
<td>내용</td>
<td><textarea class="form-control" name="contents" rows="7" cols="">${vo.contents}</textarea></td>
</tr>
<tr>
<td>작성자</td>
<td><input class="form-control" type="text" name="writer" value="${vo.writer}"></td>
</tr>
<tr>
<td>작성일</td>
<td>${fn:split(vo.indate, " ")[0]}</td>
</tr>
<tr>
<td colspan="2" align="center">
<button class="btn btn-info" type="submit">수정</button>
<button class="btn btn-warning" type="reset">취소</button>
<a class="btn btn-default" href="boardList.do">목록</a>
</td>
</tr>
</table>
</form>
</div>
<div class="panel-footer">AISCHOOL2024 - Fighting :]</div>
</div>
</div>
</body>
</html>
BoardController.java (class)
@RequestMapping("/boardUpdate.do")
public String boardUpdate(Board vo) {
System.out.println("게시글 수정 기능");
mapper.boardUpdate(vo);
return "redirect:/boardContents.do?idx=" + vo.getIdx();
}
boardMapper.java (interface)
@Mapper
public interface BoardMapper {
@Update("UPDATE BOARD SET TITLE = #{title}, CONTENTS = #{contents}, WRITER = #{writer} WHERE IDX = #{idx}")
public void boardUpdate(Board vo);
}
게시글 조회수 기능
BoardController.java (class)
- 게시글 상세보기를 클릭하였을 때 조회수를 올리면 된다
@RequestMapping("/boardContents.do")
public String boardContents(@RequestParam("idx") int idx, Model model) {
System.out.println("게시글 상세보기 기능");
mapper.boardCount(idx);
Board vo = mapper.boardContents(idx);
model.addAttribute("vo", vo);
return "boardContents";
}
boardMapper.java (interface)
@Mapper
public interface BoardMapper {
@Update("UPDATE BOARD SET COUNT = COUNT + 1 WHERE IDX = #{idx}")
public void boardCount(int idx);
}