@RequestParam 으로 Enum 파라미터 바인딩이 되나요?

기본적으로 @RequestParam 으로 Enum 파라미터에 바인딩이 됩니다.

예시 코드

@GetMapping("/layerBoard/content/edit/{layerBoardContentSeq}")
public String editLayerBoardContent(@PathVariable Long layerBoardContentSeq,
                                    @RequestParam EditType editType) {
	
		...

    return  "form/content/editLayerBoardContent";
}
@Getter
@AllArgsConstructor
public enum EditType {

    SELECT("선택형"),
    NUMBER("숫자형"),
    INPUT("서술형");

    private final String description;
}

아래의 요청을 포스트맨으로 보내봅시다.

실제로 editType 에는 SELECT가 매핑이 되는 것을 볼 수 있죠.

Enum에 없는 데이터를 보낸다면?

ExceptionHandler

그런데 쿼리 파라미터에 Enum에 없는 값을 파라미터로 보내면 어떻게 될까요?

MethodArgumentTypeMismatchException 이 발생하게 됩니다.