Spring MVC 2편 스프링 타입 컨버터, 포맷터

신재원·2023년 3월 24일
1

Spring MVC 2편

목록 보기
24/26
post-thumbnail

스프링 내부에서 수 많은 기본 Converter를 제공한다.

  • Converter를 추가하면 기본 Converter보다 높은 우선순위를 가진다.

뷰 템플릿에 Converter 적용하기

  • 컨트롤러에서 Model에 값을 담아 view에 전달한다
    • view에서는 괄호가 2개 있어야 Converter가 작동한다.
  • 예시
    (${...} = 변수표현식)
    (${{...}} = 컨버전 서비스 적용)

📌 포맷터 - Formater

  • 화면에 숫자를 출력해야하는데 Integer타입에서 String타입 변경후 출력시점에 1000"1,000" 이렇게 단위에 쉼표를 넣어서 출력하는것이 포맷터 이다.
  • 날짜 객체를 문자인 "2021-01-01 10:50:51"와 같이 출력하거나 그 반대인 상황

Converter vs Fomatter

  • Converter는 범용 (객체 -> 객체)
  • Formatter는 문자에 특화 (객체 -> 문자, 문자 -> 객체)
    • Converter의 특별한 버전

포맷터 - Formatter 만들기

  • 예시
    ( Formatter를 상속하여 포맷팅을 해준다)
  • T parse(String text, Locale locale) : 문자를 객체로 변경한다.
  • String print(T object, Locale locale) : 객체를 문자로 변경한다.
  • (Locale 설정 (지역 정보)에 따라 반환해준다.

🐱‍🏍 스프링이 제공하는 기본 포맷터

  • @NumverFormat : 숫자 관련 형식 지정 포맷터 사용
  • @DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용

    (패턴 형식 지정)

  • 정리

    컨버터를 사용하든, 포맷터를 사용하든 등록 방법은 다르지만, 사용할 때는 컨버전 서비스를 통해서 일관성 있게 사용할수 있다.
    ! 주의
    : 메시지 컨버터에는 컨버전 서비스가 적용되지 않는다.

0개의 댓글