질문, 피드백 등 모든 댓글 환영합니다.
블로그를 참고하여 작성했습니다.
기본적으로 HTML form 태그에선 GET, POST 요청만 할 수 있습니다.
때문에 form 태그에 히든 태그를 포함하는 방식으로 다른 method 요청을 구현할 수 있습니다.
<form action="/.." method="POST">
<input type="hidden" name="_method" value="DELETE"/>
</form>
위 처럼 직접 form 태그 안에 히든 태그를 작성하지 않고 Thymeleaf
를 사용한다면
<form action="/.." th:method="delete">
</form>
위와 같이 작성 후 렌더링을 거치면 자동으로 히든 태그를 생성해줍니다.
히든 태그를 포함하는 것 만으로는 컨트롤러에서 다른 HTTP 메서드 요청을 처리할 수 없습니다.
히든 태그를 읽어 요청 메서드를 변환하는 객체가 바로 HiddenHttpMethodFilter
입니다.
HiddenHttpMethodFilter
를 Bean으로 등록하거나 스프링부트를 사용한다면 application.yml(properties) 에서 다음을 추가하여 사용 가능합니다.
application.yml
spring:
mvc:
hiddenmethod:
filter:
enabled: true