본문 바로가기

WEB/Spring

Enum과 Thymeleaf

Enum 클래스 정의

Enum의 상수를 이용해서 메세지, 국제화를 적용 시켜보기

국제화의 기본 설정은 이미 다 되었다고 가정

 

Lunph.java

public enum LunPh {
    NEW_MOON(0, "달이 태양과 같은 방향에 있어 보이지 않음", "🌑"),
    WAXING_CRESCENT(1, 6, "오른쪽에서부터 달이 보이기 시작함", "🌒"),
    FIRST_QUARTER(7,  "달의 오른쪽 절반이 밝음", "🌓"),
    WAXING_GIBBOUS(8, 13, "오른쪽 절반 이상이 밝음", "🌔"),
    FULL_MOON(14,  "달이 완전히 밝음", "🌕"),
    WANING_GIBBOUS(15, 20,  "왼쪽에서부터 달이 점점 어두워짐", "🌖"),
    LAST_QUARTER(21,  "달의 왼쪽 절반이 밝음", "🌗"),
    WANING_CRESCENT(22, 27,  "왼쪽 절반 이하가 어두워짐", "🌘"),
    DARK_MOON(28, 30,  "달이 거의 보이지 않는 시기", "🌑");

    private final int startDay;
    private final int endDay;
    private final String description;
    private final String emoji;
    
    			...생략...
                
}

messages_en.properties & messages_ko.properties 파일 정의


Thymeleaf 템플릿에 Enum 상수 적용

 <div class="position-sticky" style="top:2rem;" th:each="info:${lunPhInfoService}">
 ...생략...
	<h4 class="card-title fw-semibold" th:text="#{'LunPh.'+${info.value}}">APOD title</h4>
</div>

 

${info.value} 자리에 Lunph의 상수(NEW_MOON, WAXING_CRESCENT, ...)가 바인딩 된다.

 

참고 사이트

https://i-hope9.github.io/posts_til/2021-02-23-TIL-SpringThymeleaf-i18n.html

'WEB > Spring' 카테고리의 다른 글

Spring security6와 CSRF  (0) 2024.07.05
메세지, 국제화 인코딩 오류  (0) 2024.06.16
Spring security에서 static resources 파일 적용  (0) 2024.05.22
valid와 validation  (0) 2024.05.22
Entity와 DTO  (0) 2024.05.21