Spring

12.15.(목) Spring Framework(26): 게시판 기능(11)

콜라든포비 2022. 12. 17. 23:29

글 삭제

boardView에서 삭제링크를 javascript의 location.href로 넘겨주자.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- attribute : vo -->
<title>${ vo.subject }</title>
<script>
	function delCheck(){
		location.href = "/myapp/board/boardDel?postno=${vo.postno}";
	}
</script>
<div class="container">
	<h1>글 내용 보기</h1>
	<ul>
		<li>글 번호</li>
		<li>${ vo.postno }</li>
		<li>작성자</li>
		<li>${ vo.username }</li>
		<li>등록일</li>
		<li>${ vo.regdate }</li>
		<li>조회수</li>
		<li>${ vo.hitcount }</li>
		<li>제목</li>
		<li>${ vo.subject }</li>
		<li>내용</li>
		<li>${ vo.content }</li>
	</ul>
	<div>
		<a href="/myapp/board/boardEdit?postno=${ vo.postno }">수정</a>
		<a href="javascript:delCheck()">삭제</a>
	</div>
</div>

컨트롤러 매핑, 모델&뷰

삭제를 성공하면 목록으로, 실패하면 다시 글 보기 페이지로 이동시키자.

// 글 삭제
@GetMapping("/board/boardDel")
public ModelAndView boardDel(int postno, HttpSession session) {
	ModelAndView mav = new ModelAndView();
	String username = (String)session.getAttribute("logUsername");
	
	int result = service.boardDel(postno, username);
	if(result>0) {
		mav.setViewName("redirect:boardList");
	}else {
		mav.addObject("postno", postno);
		mav.setViewName("redirect:boardView");
	}
	
	return mav;
}

쿼리문의 결과에 따라서 redirect를 이용해 뷰페이지가 아니라 링크로 이동시킬 수 있다.

redirect:boardList는 주소창에 localhost:1024/myapp/board/boardList를 입력하는 것과 같다.

Service

@Override
public int boardDel(int postno, String username) {
	return dao.boardDel(postno, username);
}

쿼리문 작성

<delete id="boardDel">
	DELETE FROM board_tbl WHERE postno=${param1} AND username=#{param2}
</delete>

아까 수정한 63번 글을 삭제했다.