고래씌

[SpringBoot] 1-5. 메뉴 삭제 - DELETE 본문

Server/SpringBoot

[SpringBoot] 1-5. 메뉴 삭제 - DELETE

고래씌 2024. 2. 2. 16:41

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번 메뉴 삭제결과, 정상적으로 삭제된 것을 확인