D+55-웹.삭제하기

Bku·2024년 3월 15일

학원 일기

목록 보기
53/67
post-thumbnail

dno로 삭제하기

DeptService removeByDno함수 만들기

 public boolean removeByDno(long dno){
        int count = deptDao.deleteById(dno); // 이 함수는 list에서 회원 정보를 삭제하고 삭제를 하면 1을 안하면 0을 return 한다.
        return (count>0)? true : false; // count가 0보다 크면 true 0이면 false를 리턴하게 한다.
    }

Dao 함수에서 deleteById함수를 가져와서 사용하면 된다. 이 함수는 list에서 회원 정보를 삭제하고 삭제를 하면 1을 안하면 0을 return 한다. count가 0보다 크면 true 0이면 false를 리턴하게 한다.

DeptController deleteDept함수 만들기

 @DeleteMapping("/board/delete/{id}")
    public RedirectView deleteBoard(@PathVariable int id ){
        boardService.delete(id);
        return new RedirectView("/exam01/board");
    }

따로 페이지는 만들어주지 않고 모든 board보기에서 삭제 버튼을 만들어 삭제를 만들어 줄 것이다.

id로 어떤 것을 식별 할 지를 인식해야하므로 @PathVariable을 통해 url로 id를 받아 삭제해야 할 인식한다.

그리고 이것을 삭제해주는 함수 delete를 이용해서 삭제한 후 RedirectView로 전체 board보기 창으로 보낸다. delete는 jsp에서 과정이 중요하다.

board_all에서 삭제 버튼 만들고 백엔드와 연결하기

<form action="/exam01/dept/delete/${data.dno}" method="post" class="container" onsubmit="return confirmDelete();">
                    <input type="hidden" name="_method" value="delete"/>
                    <div><button type="submit" class="btn btn-outline-success">삭제</button></div>
                </form>

  1. 먼저 action에서 주소를 DeleteMapping의 주소와 같게 해주어야한다. jsp가 실행되고 제출이 되면 실행될 백엔드 함수를 인식시켜주어야하기 때문이다.

  2. method는 delete가 없기 때문에 post를 해주어야한다. 그리고 따로 input태그를 만들어 주어야한다.

  3. method를 delete로 만들어주기위해 input태그는 눈에 보이지 않아야하므로 hidden으로 한다. 그리고 value에 delete를 주어 method를 delete로 만들어준다.

  4. 마지막으로 버튼의 type을 submit으로 만들어주어야 백엔드로 전송이 된다.

※ 참고 : onsubmit속성에 return으로 confirmDelete 자바스크립트 함수를 만들어 삭제할 때 정말 삭제를 할건지 안내 메세지가 뜨게 만들어 주었다. 함수는 다음과 같다.

<script>
    function confirmDelete() {
        return confirm("정말로 삭제하시겠습니까?");
    }
</script>

confirm함수는 메세지를 띄우고 확인을 누르면 실행을 시키고, 취소를 누르면 실행이 되지 않게 하는 관문 같은 함수다.

결과

삭제버튼을 누르면 다음과 같이 메세지가 뜨고 확인 버튼을 누르면 삭제가 된다.
삭제가 잘 되었다.

profile
기억보단 기록

0개의 댓글