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
'Spring boot | 쇼핑몰 만들기 | 어글리 마켓 > 홈페이지 만들기 | 고객,관리자' 카테고리의 다른 글
[레시피] 게시판 페이지네이션 view (0) | 2022.05.17 |
---|---|
[레시피] 게시판 페이지네이션 Criteria (0) | 2022.05.17 |
[레시피]게시판 글 수정 기능 (0) | 2022.05.17 |
장바구니 결제하기 (0) | 2022.05.12 |
장바구니에 상품 담기 (0) | 2022.05.11 |