Annotation 기반 Controller 에서는 HTTP 요청 파라미터를 @RequestParam 을 사용해서 메소드의 파라미터로 바로 전달 할 수 있다.

@RequestParam 은 Key=Value 형태의 HTTP 요청 파라미터를 메소드의 파라미터에 전달해준다.





getBoard 메소드 호출시 Request 파라미터에서 "board_seq" 를 찾아 int board_seq 에 넣어둔다.

만약 HTTP 요청 중에 "board_seq" 가 없다면 Exception 이 발생한다.

org.springframework.web.bind.MissingServletRequestParameterException: Required int parameter 'board_seq' is not present

파라미터의 값이 필수가 아니라면 required 속성의 값을 설정해주면 된다. 기본값은 true 이다.



전달받는 파라미터 타입 또한 아주 민감하다. int 형으로 선언된 타입에 숫자가 아닌 다른값이 들어가면 유연한 행동을 보이지 않고 바로 Exception 을 발생시킨다. 그외에도 원시 유형의 변수에 null 값이 들어가도 마찬가지로 Exception 이 발생한다. ( int 보다는 Integer 래퍼(warpper) 를 사용하는게 안전할듯... )

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type [java.lang.String] to required type [int]; nested exception is java.lang.NumberFormatException: For input string: ""
Posted by Arawn Trackback 0 : Comment 3