Resolved[org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'DELETE' is not supported] 라는 에러메시지가 떴다. 에러 페이지가 뜨는 것은 아니고 삭제 로직이 잘 구현되는 듯 하지만 잘 삭제가 되었는지 해당 페이지에 돌아가면 데이터가 그대로 남아있는 현상..
아래처럼 Delete 메서드를 실행할 경로 매핑을 해주지 않았던 것.
@DeleteMapping()
public ResponseEntity<ItemDeleteResponse> deleteItem(@PathVariable("id") long id) {
itemDetailService.deleteItem(id);
return ResponseEntity.ok()
.build();
}
메서드와 매핑할 경로를 지정해 준다.
@DeleteMapping("/{id}")
public ResponseEntity<ItemDeleteResponse> deleteItem(@PathVariable("id") long id) {
itemDetailService.deleteItem(id);
return ResponseEntity.ok()
.build();
}

삭제가 잘 완료되었다. 물론 에러가 나기 전에도 이 페이지까지는 떴지만 다시 해당 상세 페이지로 들어가면 데이터가 없는 모습을 볼 수 있었다.
덕분에 새로 알게 된 것은 있다. 바로 get, post만 있는 줄 알았던 form 방식에 delete, put도 가능하게 설정해주는 설정 방식이 있다는 것!
application.properties에 아래의 내용을 기입해주면 된다.
spring.mvc.hiddenmethod.filter.enabled=true
실제로 적용해봐도 당연히 적용이 안된다. url매핑이 안된 문제였으니.. 대신 조만간 내가 작성한 수정 기능을 form 방식으로 데이터를 전달해보는 리팩토링을 진행해봐야겠다.