'Spring MVC'에 해당되는 글 2건

  1. 2011.11.29 [봄싹 스웨거] 스프링 어디까지 써봤니? (3)
  2. 2008.07.29 @RequestParam 사용시 주의하자... (3)
봄싹(Spring Sprout) 스웨거 스터디에서 '스프링 어디까지 써봤니?' 라는 다소 건방지 주제로 발표를 했습니다.

정확한 속뜻은 제가 어디까지 스프링을 사용을 하고 있는지에 대해서 공유하는 자리였습니다.
제가 그 동안 Spring @MVC를 사용해 웹 애플리케이션을 개발하면서 스프링을 어떻게 사용하고 있는지에 대한 내용으로 구성했습니다.

아마도 스프링을 더욱 잘 이해하고 사용하시는 분들이 보시기에는 많이 부족한 내용이었으리라고 생각됩니다.

저만의 고집이 녹아들어 있는 코드들이라서 아마도 마음에 안드시는 분들고 계실거라고 생각됩니다. 코드보다는 스프링의 @MVC 기술들을 어떻게 사용했는지에 대해서 주로 보시면 좋겠습니다.

발표에 사용한 장표는 Google Docs에 공개로 올려두었고, 소스코드는 Github에 올려두었습니다.

스프링 어디까지 써봤니?.PDF

스프링 어디까지 써봤니? - Source Code

Posted by Arawn Trackback 1 : Comment 3
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