Mapper 처리 및 테스트 -> Service 처리 및 테스트 -> Controller 처리 -> View 

 

 

 

RecipeMapper = RecipeService

/* 게시판 삭제 */
public int delete(int id);

 

Mapper.xml

<!-- 게시판 삭제 -->
<delete id="delete">
    delete from recipe where id= #{id}
</delete>

 

mapper 테스트하기

 int result = recipeMapper.delete(8);
 log.info("result : " + result);

1(true)이 나오면 합격

DB도 삭제됨.

 

 


 

ServiceImpl

@Override
public int delete(int id) {
   return recipeMapper.delete(id);
}

 


Controller

@GetMapping("/delete")
public String recipeDeleteGet(@RequestParam("id") int id,  RedirectAttributes attr) {
   recipeService.delete(id);
   attr.addFlashAttribute("message", "삭제 성공!");
   return "redirect:/recipe/board/list";
}

 


삭제버튼 기능 몇번째 도전..

 

삭제버튼은 get.html 게시글 조회 페이지에서 추가하기

<a th:href="@{/recipe/board/delete(id=${board.id})}" class="btn btn-danger"
 onclick="if(!confirm('정말로 삭제할까요?')) return false;">삭제</a>
             
html에 오류가 났지만 삭제 가능.
 
 
 

또 다른 방법은 삭제 함수 만들어주기.

 
onclick="deleteConfirm();" 
 
함수는 js로 처리 

 

<script>
    function deleteConfirm(){
        if(!confirm('정말로 삭제할까요?')) return false;
    }
</script>

 

※ 헷갈

! (확인 버튼 TRUE ) = false  →  a태그 주소로 실행

! (취소 버튼 FALSE) = TRUE   return false  (실행안됨.)

 

했는데 안됨.. 취소눌려도 삭제가 되어버렸다.. 

다른방법으로 해보자

<script>
    function deleteConfirm(){
        if(confirm('정말로 삭제할까요?')) {
          location.href = '/board/delete?bno=' + '[[${board.bno}]]';
        }
    }
</script>

또 안된다.. 

 

 

이번엔 삭제버튼 태그를 바꿔보자 

<a th:href="@{/recipe/board/delete(id=${board.id})}" class="btn btn-danger"
   onclick="deleteConfirm();">삭제</a>

 

 

a태그를 button 태그로 바꿔봤더니 된다!

<button class="btn btn-danger" onclick="deleteConfirm();">삭제</button>

 

반응형
LIST

+ Recent posts