어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨
[ Java / SpringBoot / MVC / RESTful] RESTful한 게시판 만들기4 / HTTP Method 중 put과 delete는 html에서 지원하지 않는다. 본문
REST API
[ Java / SpringBoot / MVC / RESTful] RESTful한 게시판 만들기4 / HTTP Method 중 put과 delete는 html에서 지원하지 않는다.
낫쏘링 2023. 9. 10. 21:02728x90
RESTful한 게시판을 만들기 위해서 중요한 것은 CRUD에 맞게 HTTP Method를 작성해주는 것이다.
즉, CRUD 중 UPDATE 와 DELETE는 @PutMapping과 @DeleteMapping을 사용해줘야 한다.
하지만 html에서는 get과 post만 지원해준다.
form에 아무리 method를 put / delete로 명시해줘도 사용하지 못한다.
이런 문제를 해결하기 위해 스프링에서 HiddenHttpMethodFilter 라는 클래스를 제공한다.
보통 기본적으로 활성화되어 있다는데 나는 아무리 해도 get이나 post로만 이동해서 따로 application.properties 파일에서 활성화 해줬다.
# put / delete 메서도 사용하기 위해서 HiddenHttpMethodFilter 활성화 spring.mvc.hiddenmethod.filter.enabled=true
<form id="frm" method="post" th:action="'/board/'+ ${boardIdx}"> // ... 전송하고자 하는 데이터 작성 ... // HiddenHttpMethodFilter는 name이 _method인 파라미터가 존재할 경우 // post를 value의 값으로 해석해서 method를 인식한다. <input type="hidden" id="method" name="_method" value="put"/> <button type="submit" id="edit" class="btn">수정완료</button> </form>
// 만약 타임리프를 사용하는 경우에는 이렇게 직접 작성 가능하다. <form id="frm" th:method="put" th:action="'/board/'+ ${boardIdx}"> // ... 전송하고자 하는 데이터 작성 ... <button type="submit" id="edit" class="btn">수정완료</button> </form>
728x90