[SPRING] Spring MVC - 필요없는 것으로 정의 된 누락 된 필드에 대한 HTTP 상태 코드 400 (잘못된 요청)
SPRINGSpring MVC - 필요없는 것으로 정의 된 누락 된 필드에 대한 HTTP 상태 코드 400 (잘못된 요청)
나는이 컨트롤러 메소드로 Spring MVC 애플리케이션을 가지고있다.
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
...
return "redirect:/showAll/";
}
내 JSP에서 위의 컨트롤러 메서드에 "숫자"라는 값을 게시하는 표준 HTML 양식이 있습니다. 그러나 컨트롤러 메소드가 내 브라우저라고 불리기 전에 값을 빼고 (텍스트 필드에 아무 것도 입력하지 마십시오) 컨트롤러에 데이터를 POST하면
HTTP Status 400 - Required Long parameter 'number' is not present
컨트롤러 메소드 주석은 "숫자"매개 변수를 명확하게 정의하지는 않지만 필수는 아닙니다.
아무도 무슨 일이 벌어 질지 약간의 생각이 있습니까?
고맙습니다.
추신 : 던져지고있는 예외는 다음과 같습니다 :
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present
편집 : 이것은 봄 3.2.3.RELEASE 버그 (여기 참조)입니다. 버전 3.1.4.RELEASE에서는 더 이상이 문제가 없습니다.
해결법
-
==============================
1.같은 상황을 겪었고, 매개 변수가 요청에 빈 값으로 표시되면 이런 일이 발생합니다.
같은 상황을 겪었고, 매개 변수가 요청에 빈 값으로 표시되면 이런 일이 발생합니다.
즉, POST 본문에 "number ="(값이 비어 있음)이 있으면 Spring은이 예외를 throw합니다. 그러나 매개 변수가 요청에 전혀 표시되지 않으면 오류없이 작동합니다.
from https://stackoverflow.com/questions/17858537/spring-mvc-http-status-code-400-bad-request-for-missing-field-which-is-defin by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] jsf managed beans에 @autowire하는 방법 (0) | 2019.02.15 |
---|---|
[SPRING] Jedis, jedis 연결을 얻을 수 없습니다 : 풀에서 자원을 가져올 수 없습니다. (0) | 2019.02.15 |
[SPRING] Spring MySQL과 RowCallbackHandler를 사용하여 큰 데이터 세트를 관리하는 방법 (0) | 2019.02.14 |
[SPRING] 봄 부팅으로 WAR 파일에서 JSP 페이지 찾기 (0) | 2019.02.14 |
[SPRING] Spring JPA 트랜잭션 진행 중 (0) | 2019.02.14 |