Spring

Spring Form Method PUT, DELETE로 하기

푸른화염포 2021. 11. 11. 09:03
728x90

Html에서 Form태그로 데이터를 전송할때 method를 지정하는데 get과 post밖에 지원을 하지않는다

이유는 길게 있지만 form에 put과 delete를 사용하는건 form에 맞지않고 사용할 이유가 없다고 하기 때문이다.

하지만 사용하는 방법이 있다.

 

 

예시

<form id="" action="" method="post">
	<input type="hidden" name="_method" value="PUT" />

 

이렇게 form안에 input hidden으로 _method로 PUT을 넣어주고

 

web.xml

<!-- RESTful Form method filter : allow PUT, DELETE for Html Form tag -->
	<filter>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>hiddenHttpMethodFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

HiddenHttpMethodFilter를 하나 추가해주면된다.

 

이렇게 하면 Controller에서 PUT이나 DELETE로 지정한 메서드로 잘 가지지만

fiddler로 http를 확인했을때는, form에 지정한 post로 날라가는것을 확인 할 수 있었다.

728x90