본문 바로가기

Spring

Spring Form Method PUT, DELETE로 하기

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