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값이 누락된 경우
출처
'Spring > Spring MVC' 카테고리의 다른 글
[Spring MVC] 2-4. Handler Methods: Controller Advice (0) | 2023.10.17 |
---|---|
[Spring MVC] 2-3. Handler Methods: DataBinder (1) | 2023.10.17 |
[Spring MVC] 2-1. Handler Methods: Method Arguments (2) | 2023.10.17 |
[Spring MVC] 1-2. DispatcherServlet: Special Bean Types (0) | 2023.10.16 |
[Spring MVC] 1-1. DispatcherServlet: Context Hierarchy (0) | 2023.10.16 |