Deeb
디비의 DB
Deeb
전체 방문자
오늘
어제
  • 분류 전체보기 (243)
    • Frontend (63)
      • HTML & CSS (27)
      • JavaScript (17)
      • jQuery (8)
      • React (6)
    • Backend (98)
      • Java (19)
      • JDBC (2)
      • Servlet & JSP (13)
      • Spring (17)
      • Project (0)
      • 개발 공부 (11)
      • 문제 풀이 (8)
      • Algorithm (1)
      • DataBase (0)
      • Oracle (18)
      • Error (8)
    • Knou (1)
    • Review (14)
    • TIL (33)
    • 삽질기록 (8)
    • deebtionary (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 한빛미디어
  • 후기
  • Java
  • 함수
  • js
  • 2학기
  • css
  • 기초
  • 배열
  • 정의
  • 리액트
  • For
  • 정처기
  • CLASS
  • 방통대
  • alter
  • GIT
  • 삭제
  • 다형성
  • 서평단
  • DB
  • 자바
  • 방송대
  • DBMS
  • 에러
  • 추천
  • 클래스
  • HTML
  • 책
  • 공부

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Deeb

디비의 DB

Backend/Spring

[Spring] 게시판 글 삭제

2022. 1. 19. 15:13

boardView.jsp

<c:if test="${loginMember.memberNo == board.memberNo }">
    <%-- 로그인된 회원과 해당 글 작성자가 같은 경우에만 수정, 삭제 버튼 노출--%>
    <button id="deleteBtn" class="btn btn-primary float-right mr-2" onclick="deleteBoard()">삭제</button> 
    <button id="updateBtn" class="btn btn-primary float-right mr-2" onclick="updateForm();">수정</button> 
</c:if>

- 삭제 버튼 클릭시 실행 될 함수 지정

 

board.js

// 삭제 버튼 클릭 시 동작
function deleteBoard(){
	if(confirm("정말 삭제하시겠습니까?")){
	document.requestForm.action = "../delete";
	document.requestForm.method = "POST";
	document.requestForm.submit();
	}
 }

- 스크립트로하면 직접적인 주소 노출을 막을 수 있다

그리고 파라미터를 막을 수 있다

 

ex) /board/view/500 -> /board/delete

 


 

BoardController

삭제는 delete 구문이 아닌  STATUS_CD 4로 update 진행

@RequestMapping(value="delete", method = RequestMethod.POST)
public String deleteBoard(int boardNo,
        @RequestParam(value="cp", required = false, defaultValue = "1") int cp,
        RedirectAttributes ra) {

    // 게시글 삭제  Service 호출
    int result = service.deleteBoard(boardNo);

    String path = null;
   
    if(result > 0) {
        Util.swalSetMessage("게시글 삭제 성공", null, "success", ra);
        path = "list?cp=" + cp;
    } else {
        Util.swalSetMessage("게시글 삭제 실패", null, "error", ra);
        path = "view/" + boardNo +"?cp=" + cp;
    }
    return  "redirect:" + path;
}

성공 시 "list?cp=" + cp로 리다이렉트 + 성공 메세지
실패 시 삭제하려던 글 상세조회 페이지로 리다이렉트 + 실패 메시지

 

BoardService

/** 게시글 삭제
 * @param boardNo
 * @return result
 */
int deleteBoard(int boardNo);

 

BoardServiceImpl

//게시글 삭제
@Override
public int deleteBoard(int boardNo) {
    return dao.deleteBoard(boardNo);
}

 

BoardDAO

/** 게시글 삭제
 * @param boardNo
 * @return
 */
public int deleteBoard(int boardNo) {
    return sqlSession.update("boardMapper.deleteBoard", boardNo);
}

 

board-mapper

<!-- 게시글 삭제 -->
<update id="deleteBoard" parameterType="_int">
    UPDATE BOARD SET
    STATUS_CD = 4
    WHERE BOARD_NO = #{boardNo}
</update>

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Backend > Spring' 카테고리의 다른 글

[Spring] 댓글 목록 조회  (0) 2022.01.19
[Spring] 댓글 테이블, 클래스 구조 생성  (0) 2022.01.19
[Spring] 게시글 글 수정  (0) 2022.01.19
[Spring] 게시글 (상세조회)  (0) 2022.01.10
[Spring] 기본 세팅  (0) 2022.01.10
    'Backend/Spring' 카테고리의 다른 글
    • [Spring] 댓글 목록 조회
    • [Spring] 댓글 테이블, 클래스 구조 생성
    • [Spring] 게시글 글 수정
    • [Spring] 게시글 (상세조회)
    Deeb
    Deeb

    티스토리툴바