기본적으로 @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에 없는 값을 파라미터로 보내면 어떻게 될까요?
MethodArgumentTypeMismatchException 이 발생하게 됩니다.