Spring/Spring MVC

[Spring MVC] 2-2. Handler Methods: Type Conversion

noahkim_ 2023. 10. 17. 01:16

1. Type Conversion

String-based Request Input

  • 어노테이션이 붙은 컨트롤러 메서드 인수들은 대개 문자열 기반의 요청 입력을 나타냅니다.

 

Type Conversion

  • 인수가 String 이외의 다른 것으로 선언되었을 경우 타입 변환이 필요할 수 있습니다.
  • 이러한 변환은 구성된 컨버터를 기반으로 자동으로 적용됩니다.

 

2. Convertion Types

Default Supported Types

  • 기본적으로, int, long, Date 등의 단순한 타입들이 지원됩니다.

 

Customizing Type Conversion

  • 타입 변환을 사용자 정의하려면 WebDataBinder를 통해 할 수 있습니다.
  • 또는 FormattingConversionService에 Formatter를 등록하여 변환을 할 수 있습니다.

 

Empty String Value

  • 타입 변환의 결과로 null이 되는 경우, 빈 문자열 소스 값은 누락된 것으로 처리됩니다.

 

null 값을 허용하는 방법
  • 인수 어노테이션에 required 플래그를 사용
  • @Nullable인수를 선언

 

Enforcing Non-null Arguments

  • 스프링 5.3 버전부터는 타입 변환 후에도 non-null 인수가 강제됩니다.

 

3. Handling Missing Values

  • 누락된 값이나 변환 후의 값이 null이면 예외가 발생합니다.

 

Missing...Exception

  • 누락된 값이나 변환 후의 null 값에 대한 예외입니다.
  • MissingRequestValueException 클래스를 상속합니다.

 

MissingPathVariableException
  • 특정 path 값이 누락된 경우

 

MissingRequestHeaderException
  • 특정 request header값이 누락된 경우

 

 

출처