공부공부

게시판 만들기 13.게시글 삭제

냘로하 2020. 9. 7. 12:23

저번주에 게시글 수정을 했으니 간단하게 게시글 삭제 진행내용을 적어보려고 한다.

내용은 수정과 거의 같게 이루어져서 크게 복잡하게 설명할 내용이 없다.(delete oracle쿼리문만 짜고 컨트롤러에서 보내주면 되기 때문. )

그렇기 때문에 소스를 올리고 시작하겠다.

@RequestMapping("/board.com/delboard")
	public ModelAndView delboard (ModelAndView mv,Board2DTO dto,HttpServletRequest req) {
		//삭제하는 기능
		int boardno =  Integer.parseInt(req.getParameter("boardno"));
		service.delboard(boardno);
		
		//리다이렉션
		RedirectView rv = new RedirectView ("/board");
		mv.setView(rv);
		return mv;
	}

삭제 컨트롤러

	public void delboard(int boardno) {
		dao.delboard(boardno);
		
	}

서비스단

	public void delboard(int boardno) {
		session.delete("boarddate.delboard",boardno);
	}

DAO단

<delete id="delboard" parameterType = "java.lang.Integer">
	delete boardtable 
	where boardno = #{boardno}
	</delete>

쿼리문.

오히려 수정보다 단순하다.

<%@ 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" %>
<!DOCTYPE html>
<html>
<head>
	<title>게시글 상세보기</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 
<!-- 합쳐지고 최소화된 최신 CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<!-- 부가적인 테마 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
<!-- 합쳐지고 최소화된 최신 자바스크립트 -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

</head>
<body>
<h1 align="center">
게시글 상세보기
</h1>
<c:forEach var="list" items="${boardlist}">
<table class="table table-hover"  style="width: 50%; margin: auto;">

	<tr><th>글 제목</th><td>${list.title }</td></tr>
	<tr><th>글 내용</th><td>${list.content }</td></tr>
	<tr><th>글 번호</th><td>${list.boardno }<input type="hidden"id="boardno" value="${list.boardno}"></td></tr>
	<tr><th>작성일</th><td><fmt:formatDate value="${list.boarddate}" pattern="yyyy년MM월dd일"></fmt:formatDate></td></tr>
	<tr><th>조회수</th><td>${list.hit }</td></tr>
</table>
<div align="center" style="text-align: center;">
	<div style="float:center;">
		<button class="btn btn-primary" onclick="location.href='http://localhost/board.com'">게시판으로 돌아가기</button>
		<button class="btn btn-warning" onclick="location.href='http://localhost/board.com/modiboard?boardno=${list.boardno}'">수정하기</button>
		<button class="btn btn-danger"  id="delok" onclick="location.href='http://localhost/board.com/delboard?boardno=${list.boardno}">삭제하기</button><!-- "'" -->
		<script src="../resources/delboard.js"></script>
	</div>

</div>
</c:forEach>
</body>
</html>

삭제 기능이 들어가있는 상세보기 창의 소스코드이다.

버튼 delok 아이디의 아래에 자바스크립트가 끼여있는걸 참조해서 보면 된다. (head쪽에 올려놓으면 스크립트 태그 body위쪽의 내용을 읽어오지 못해 오류가 발생)

var boardno = $('#boardno').val();
$("#delok").click(function(){
	if(confirm("삭제하시겠습니까?")==true){
		document.location = 'http://localhost/board.com/delboard?boardno='+boardno+'';
	}else{
		aleert("아니오를 클릭하셨습니다.")
	}
});

delboard.js 의 코드. 이걸 진행시키는데 오히려 위의 삭제기능구현보다 오래걸렸다(...)