java/스프링공부

스프링에서 restapi 만들때 주의할점

Dev갱이 2020. 7. 10. 17:56
728x90

웹 브라우저에는 GET과 POST방식만 지원하고 있어서 PUT,PATCH,DELETE방식의 요청은 전송할 수 없습니다. 그래서 스프링은 HiddenHttpMethodFilter를 이용해 PUT, PATCH, DELETE방식의 요청을 할 수 있도록 해주는데요. <form:form>태그의 method 속성 값으로 지정해주면 됩니다.

<form:form action="/board/post/${board.bno}" method="DELETE">
    <input type="submit" value="삭제">
</form:form>

<form:form>태그의 method값이 PUT,PATCH,DELETE인 경우에는 <form:form>가 hidden타입의 <input>태그를 추가로 생성합니다.

<form action="/board/post/${board.bno}" method="POST">
    <input type="hidden" name="_method" value="DELETE"/> 
    <input type="submit" value="삭제">
</form>


이런식으로 생성이되어 전송된다고 생각하시면 됩니다. HiddenHttpMethodFilter는 요청 파라미터에 "_method"가 있을 경우 파라미터의 value를 요청 방식으로 사용하도록 스프링 MVC의 관련 정보를 설정하는 역할을 해줍니다. 그럼 컨트롤러에서 알맞는 요청의 메서드를 찾아주기 때문에 웹 브라우저를 이용하더라도 Restful 방식으로 구현된 컨트롤러를 이용할 수 있게됩니다.

728x90