이 컨트롤러 메소드로 Spring MVC 애플리케이션이있다.Spring MVC - 필요없는 것으로 정의 된 누락 된 필드에 대한 HTTP 상태 코드 400 (잘못된 요청)
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
...
return "redirect:/showAll/";
}
내 JSP에는 위의 컨트롤러 메서드에 "number"라는 값을 게시하는 표준 HTML 양식이 있습니다. 컨트롤러 메소드 주석이 명확하게 정의하지만, 그러나 나는 값을 떠날 경우, (텍스트 필드에 아무 것도 입력하지 않음) 및 컨트롤러 방법은 브라우저를 호출하기 전에, 컨트롤러에 데이터를 POST
HTTP Status 400 - Required Long parameter 'number' is not present
을 보여줍니다 "숫자"- 매개 변수는 이 아니며이 필요합니다.
어떤 일이 벌어 질 지 상상해보십시오.
감사합니다.
PS 다음과 같이 발생되는 예외이다
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present
EDIT :이 스프링 3.2.3.RELEASE 버그 (see here)이다. 버전 3.1.4.RELEASE에서는 더 이상이 문제가 없습니다.
게시 요청에 이름 매개 변수가 포함되어 있지 않다는 의미입니다. 불 덩어리 폭탄과 교차 확인하십시오. –
죄송합니다. 본인의 실제 테스트 앱에서 오타가 발생했습니다. 위의 (편집 된) 예 에서처럼 "숫자"여야합니다. – xSNRG
이상합니다. 방금 3.2.0.RELEASE 및 3.2.3.RELEASE로 테스트했으며 두 경우 모두 코드가 예상대로 작동합니다. – Bart