본문 바로가기

십이지내장탕

고민과 해결 - spring boot, mustache 폼 태그에서 어떻게 put, delete 전송을 할 수 있을까?

html에서는 get, post 전송만 된다고 한다.

 

실제로 mustache 파일에서 메소드를 put으로 설정하여, @PutMapping이 붙은 컨트롤러 메소드에게 요청을 보냈는데 에러가 났다.

 

 

찾아보니, 내가 자바스크립트를 사용하지 않고도, 수정 가능해 보이는 방법이 있었다.

 

 

 

REST PUT, DELETE 사용하기

REST PUT, DELETE를 사용하기 위해 GET, POST와는 달리 다소 노력이 필요하다. HTML form 태그의 method 속성으로 GET, POST만을 지원하기 때문에 PUT, DELETE로 설정하면 엉뚱하게도 GET 요청으로 전송된다. Ajax..

devday.tistory.com

먼저 위 방법을 사용하기 위해 application.properties에 항목을 추가한다. spring.mvc.hiddenmethod.filter.enabled=true

 

그리고 위에 글처럼 input 태그를 form 태그 밑에 추가한다. form 태그의 메소드는 post로 그리고 하위에 input 태그의 메소드를 put, delete로 설정하면 해당 메소드를 사용할 수 있다

 

 

물론 브라우저에서는 post 방식으로 보내지만, 컨트롤러는 put으로 받게 된다.