Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

[ 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:02
728x90
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