💻문제점
@ReuqestParam으로 enum 타입을 받아야 했는데, 알아서 변환되지 않기 때문에 String으로 받고, enum 타입으로 변환해주어야 했다.
📃시도
Category Enum 클래스에 ofName() 메서드라는, categoryStr 문자열이 categoryName과 같은 Category를 반환하도록 했다.
하지만 String으로 값을 받고 ofName() 메서드를 통해 변환시켜주자니 받아야 하는 Enum 타입의 데이터가 많은 경우에는 가독성이 떨어질 것이라고 생각했다, 그래서 나는 @RequestParam을 받을 때 부터 Category 타입으로 변환하는 것을 찾아보았다.
@Getter
public enum Category {
FashionStuff("FashionStuff"),
HomeLiving("HomeLiving"),
TechEletrics("TechEletrics"),
Beauty("Beauty"),
Food("Food"),
LeisureSports("LeisureSports");
private String categoryName;
Category(String category) {
this.categoryName = category;
}
public static Category ofName(String categoryStr) {
for (Category category : Category.values()) {
if (category.getCategoryName().equals(categoryStr))
return category;
}
throw new IllegalArgumentException("일치하는 카테고리가 없습니다.");
}
}
🔍해결
String 문자열을 Enum 타입으로 변환시켜주는 CustomConverter를 생성하면 된다.
해결 방법은 다음 게시글에 작성했다.
https://yeon-dev.tistory.com/190
[Spring] @RequestParam으로 Enum 타입 매개변수 받기
@RequestParam으로 입력받은 String 문자열을 enum 타입으로 바꿔 사용할 수도 있지만, 매번 String 문자열을 enum 타입으로 바꾸지 않고, CustomConverter를 만들어 문자열을 enum 타입으로 변환할 수 있다. Categ
yeon-dev.tistory.com
728x90
'TIL' 카테고리의 다른 글
[TIL - 20230522] 로컬에서 OBS 실시간 스트리밍 (0) | 2023.05.23 |
---|---|
[TIL - 20230515] 게시글 제목과 태그에 검색어를 포함하는 게시글 조회 (0) | 2023.05.16 |
[TIL - 20230513] 게시글 수정(썸네일 변경 포함)을 위한 MutipartFile과 Dto 함께 받기 (0) | 2023.05.14 |
[TIL - 20230510] Service 유효성 검사 메서드 분리 (0) | 2023.05.11 |
[TIL - 20230506] 회원/비회원 전체 게시글 조회 처리 (0) | 2023.05.06 |