인프런 커뮤니티 질문&답변

민경재님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

RedirectAttributes

상품 삭제 관련해서 질문이 있습니다.

작성

·

298

0

먼저 강의 항상 잘 보고 있습니다 선생님!!!

제가 editForm 아래에

<div class="col">
<button class="w-100 btn btn-danger btn-lg"
onclick="location.href='item.html'"
th:onclick="|location.href='@{/basic/items/{itemId}/edit/delete (itemId = ${item.id})}'|"
type="button">삭제
</button>
</div>

추가후  컨트롤러에

@GetMapping("/{itemId}/edit/delete")
public String editDelete(@PathVariable Long itemId) {
itemRepository.delete(itemId);
return "redirect:/basic/items/";
}

추가하여 지우는걸  브라우저에서 성공 했습니다. 다름이 아니라 DeleteMapping 을 사용하여 지우고 싶은데

form method = "delete"로 해도 안되서  질문을 남겨봅니다. 
위에 방식대로 하면 실행이 됩니다만 혹시 DeleteMapping 을 사용해서 할 방법이 있을까요??

답변 2

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 경재님

HTML Form은 공식적으로  GET, POST만 지원합니다.

따라서 이 경우 POST를 사용하시는 것이 맞습니다.

API의 경우에는 PUT, PATCH, DELETE를 모두 사용할 수 있습니다.

그런데 스프링은 히든 파라미터를 활용하는 트릭을 사용해서 HTML Form에서 PUT, PATCH, DELETE를 사용하는 방법을 지원합니다.

관련해서 spring mvc form method put로 검색해보시면 원하는 결과를 찾으실 수 있을거에요.

감사합니다.

1

민경재님의 프로필 이미지
민경재
질문자

답변주셔서 감사합니다 언제나 잘듣고 있습니다