티스토리 뷰

Spring

Spring - MVC @ModelAttribute

엔꾸꾸 2019. 7. 27. 20:51

Spring Handler Method - @ModelAttribute

  • @RequestParam과 같이 요청 매개변수를 매핑하는 방법중 하나이다.

  • @ModelAttribute

    • 단순 데이터 타입을 하나의 복합타입의 객체로 받아오거나, 객체를 새로 생성할때 사용할수 있다.
    • URLPath, 요청매개변수, 세션 등 ..
    • 생략이 가능하다.

  • 왜 사용하는가 ?

    • @RequestParam으로도 충분한 처리가 가능하다.
    • 하지만, 요청 매개변수가 많은 경우라면 ? ..
    • 요청 매개변수가 늘어날수록 Handler Method Argument로 게속해서 늘어날것..

  • @ModelAttribute를 사용할 경우
    • 요청 매개변수 개수의 상관없이 @ModelAttribute를 활용하여 Event 라는 객체로 하나로 받아올수 있다.
    • Event객체를 생성해서, 요청매개변수를 Event 객체로 바인딩 하는 과정의 코드도 사라지게된다.

  • 값을 바인딩 할수 없는경우 ?

    • 400 Error
    • BindingException 발생
  • 바인딩 에러를 직접 처리하고 싶은경우

    • BindingResult 를 활용하여 해당 에러를 핸들링이 가능하다.

  • 바인딩 이후, 검증작업이 필요한 경우
    • @Valid(JSR-303)
    • @Validated(Spring 제공)
    • @Valid 혹은, @Validated 를 사용할 경우, Validation결과에 대한 에러도 BindinResult로 핸들링이 가능하다.

정리

  • 요청매개변수가 많다면 @ModelAttribtue를 활용하여 컴포짓오브젝트 (복합객체) 로 받아올 수있다.
  • 바인딩이 불가능한 요청이 존재할경우, 400Error, BindingException이 발생한다.
  • Valid, Validated를 활용하여 유효성 검증이 가능하다.
  • BindinResult객체로 바인딩 에러, 검증에러에 대한 핸들링이 가능하다

'Spring' 카테고리의 다른 글

Spring - MVC @SessionAttributes  (0) 2019.07.28
Spring - MVC @Valid_@Validated  (0) 2019.07.28
Spring - MVC FormData  (0) 2019.07.27
Spring - MVC @RequestParam  (0) 2019.07.27
Spring - MVC PathVariable_MatrixVariable  (0) 2019.07.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함