고래씌
[SpringBoot] 1-5. 메뉴 삭제 - DELETE 본문
1. 메뉴 삭제
▶ index.jsp
<!-- 4. DELETE 전송방식 : 'DELETE'로 요청
메뉴 삭제 성공시 => 메뉴 삭제에 성공했습니다.
실패시 => 메뉴가 존재하지 않습니다.
-->
<div class="menu-test">
<h4>메뉴 삭제하기(DELETE)</h4>
<p>메뉴번호를 사용해 해당메뉴정보를 삭제함.</p>
<form id="menuDeleteFrm">
<input type="text" name="id" placeholder="메뉴번호" class="form-control" /><br />
<input type="submit" class="btn btn-block btn-outline-danger btn-send" value="삭제" >
</form>
</div>
<script >
$("#menuDeleteFrm").submit( function(e) {
e.preventDefault();
const id = $("[name=id]" , e.target).val();
if(!id) return;
$.ajax({
url : `${contextPath}/menu/\${id}`,
method : 'delete' ,
success : function(data) {
const {msg} = data;
alert(msg);
},
error : function(xhr) {
const {status} = xhr; // 200, 400, 500
if(status == 404) {
alert('해당메뉴가 존재하지 않습니다.')
}else {
alert('메뉴 삭제 실패');
}
},
complete() {
$(e.target)[0].reset();
}
});
})
▶ MenuController.java
// 메뉴 삭제
@DeleteMapping("/menu/{id}")
public ResponseEntity<?> deleteMenu(@PathVariable String id){
try {
int result = menuService.deleteMenu(id);
if(result > 0) {
Map<String, Object> map = new HashMap();
map.put("msg", "메뉴 삭제 성공");
return new ResponseEntity<>(map, HttpStatus.OK);
}else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND); // 404 에러
}
}catch(Exception e) {
throw e;
}
}
▶ MenuService.java
// 메뉴 삭제
int deleteMenu(String id);
▶ MenuServiceImpl.java
// 메뉴 삭제
@Override
public int deleteMenu(String id) {
return menuDao.deleteMenu(id);
}
▶ MenuDao.java
// 메뉴삭제
public int deleteMenu(String id) {
return session.delete("menuMapper.deleteMenu", id);
}
▶ menu-mapper.xml
<!-- 메뉴 삭제 -->
<delete id="deleteMenu">
DELETE FROM MENU
WHERE ID = #{id}
</delete>
▶ 결과
11번 메뉴 삭제결과, 정상적으로 삭제된 것을 확인

'Server > SpringBoot' 카테고리의 다른 글
[SpringBoot] 2-2. React에 스프링부트 연동(채팅방 생성) (0) | 2024.02.05 |
---|---|
[SpringBoot] 2-1. React에 스프링부트 연동(게시판, 채팅방 목록) (0) | 2024.02.05 |
[SpringBoot] 1-4. 메뉴 검색, 메뉴 수정 - PUT 방식 (0) | 2024.02.02 |
[SpringBoot] 1-3. 메뉴 추가(insert) - POST 방식 (0) | 2024.02.02 |
[SpringBoot] 1-2. 필터링하여 메뉴 목록 조회 - GET 방식 (0) | 2024.02.02 |