트러블슈팅/Java

[SpringBoot] HttpRequestMethod Not Supported Exception 해결방법

Jindory 2022. 3. 12. 17:46
반응형

안녕하세요 개발자 Jindory입니다. 오늘은 제가 Spring Boot를 공부하면서 RESTfull 형식의 웹 페이지를 구현하려고 하다가 만난 에러를 해결하는 과정을 정리해보려고 합니다.


일단 이 에러는 View에서 요청하는 HttpRequest Method가 Controller에 없을때 나타나는 에러지만 Controller에 있어도 HiddenHttpMethodFilter 처리를 하지 않으면 해당 에러가 나타날 수 있습니다. 하지만 Spring Boot 2.1.x부터는 편리하게 이 필터가 기본적으로 등록되어 있습니다.따라서 별도 설정 없이 'HiddenHttpMethodFilter'클래스를 사용할 수 있습니다.

그래서 별다를 처리를 하지 않고도 HttpRequestMethod를 사용할 수 있다고 생각하기 쉬우나 막상 사용하면 Request Method 'POST' not surpported라는 오류가 발생합니다.

개요

  1. application.properties
    spring.mvc.hiddenmethod.filter.enabled=true
    • 참고로 HTTP PUT, DELETE 메소드를 호출하는 화면단 소스 코드는 다음과 같은 형식으로 작성해야 사용이 가능합니다.
    <form action="/board/${boardIdx}" method="post">
        ... 중략 ...
    	<input type="hidden" name="_method" value="put">
    	<a href="#this" id="edit" class="btn">수정</a>
    </form>
    위 코드에서 주의할 점은 <form> 태그의 method 속성값은 반드시 'post'로 설정되어야 한다는 점과 hidden 태그의 name 속성값은 '_method'로, value값에는 'put'(=데이터 update)이나 'delete'(=데이터 delete)가 설정되어야 한다.신규 데이터 입력시('post')에는 hidden태그가 필요 없으므로 기존대로 form submit하면 된다.

혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.

오늘도 Jindory 블로그에 방문해주셔서 감사합니다.

 

[ 참조 ] 

https://m.blog.naver.com/hyoun1202/222058520474

반응형