Spring

Spring MVC의 HiddenMethod 기능 사용하기

민철킹 2021. 6. 21. 18:34

기본적으로 HTML Form의 method 속성은 post와 get 방식 밖에 지원하지 않는다. 그렇다면 HTML Form을 사용할 때는 @DeleteMapping을 사용하지 못하는 걸까??

Spring MVC는 HiddenMethod 기능을 통해 HTML Form이 제공하지 않는 delete, put과 같은 메서드를 사용가능하게 해준다. input 타입을 hidden으로 사용자가 원하는 http메서드 방식을 스프링에게 알려주면 스프링 MVC가 내부적으로 이를 사용가능하게 해주는 방식으로 동작한다.

 

예전에는 @Configuration을 통해 스프링 빈에 등록시켜고 web.xml을 통해 filter를 설정해주어야했지만 최신 스프링부트에서는 application.properties나 yml에 등록해주면 바로 간단하게 사용이 가능하다.

 

spring.mvc.hiddenmethod.filter.enabled=true로 설정해주면 된다.

 

form 태그의 method 속성은 post나 get으로 지정하고 아래 input을 통해 우리가 원하는 메서드를 알려주면 된다.

<input type="hidden" name="_method" value="delete"/> 

put방식을 사용하고 싶다면

<input type="hidden" name="_method" value="put"/>

 

이 기능을 사용하여 Http 메서드 Delete 방식으로 form을 전달하여 @DeleteMapping을 사용할 수 있다.

반응형

'Spring' 카테고리의 다른 글

yml에서 List Object 사용법  (0) 2022.04.29
@ModelAttribute와 @RequestBody 그리고 Setter  (4) 2021.11.24
Spring과 Redis를 연동하여 Session Clustering  (0) 2021.11.19
패키지 구조 설계  (0) 2021.07.17
Thymeleaf와 Spring  (0) 2021.07.04