반응형
안녕하세요 개발자 Jindory입니다. 오늘은 제가 Spring Boot를 공부하면서 RESTfull 형식의 웹 페이지를 구현하려고 하다가 만난 에러를 해결하는 과정을 정리해보려고 합니다.
일단 이 에러는 View에서 요청하는 HttpRequest Method가 Controller에 없을때 나타나는 에러지만 Controller에 있어도 HiddenHttpMethodFilter 처리를 하지 않으면 해당 에러가 나타날 수 있습니다. 하지만 Spring Boot 2.1.x부터는 편리하게 이 필터가 기본적으로 등록되어 있습니다.따라서 별도 설정 없이 'HiddenHttpMethodFilter'클래스를 사용할 수 있습니다.
그래서 별다를 처리를 하지 않고도 HttpRequestMethod를 사용할 수 있다고 생각하기 쉬우나 막상 사용하면 Request Method 'POST' not surpported라는 오류가 발생합니다.
개요
- application.properties
spring.mvc.hiddenmethod.filter.enabled=true
- 참고로 HTTP PUT, DELETE 메소드를 호출하는 화면단 소스 코드는 다음과 같은 형식으로 작성해야 사용이 가능합니다.
위 코드에서 주의할 점은 <form> 태그의 method 속성값은 반드시 'post'로 설정되어야 한다는 점과 hidden 태그의 name 속성값은 '_method'로, value값에는 'put'(=데이터 update)이나 'delete'(=데이터 delete)가 설정되어야 한다.신규 데이터 입력시('post')에는 hidden태그가 필요 없으므로 기존대로 form submit하면 된다.<form action="/board/${boardIdx}" method="post"> ... 중략 ... <input type="hidden" name="_method" value="put"> <a href="#this" id="edit" class="btn">수정</a> </form>
혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.
오늘도 Jindory 블로그에 방문해주셔서 감사합니다.
[ 참조 ]
반응형
'트러블슈팅 > Java' 카테고리의 다른 글
[Java] Mockito 사용 중 Unnecessary Stubbing Exception 해결하기 (0) | 2022.11.07 |
---|---|
[Java] Java Spring UTF8 설정 오류(한글 깨짐) 해결방법 (0) | 2022.03.06 |