[Spring Boot] Thymeleaf 타임리프 템플릿 사용하기 (4) :: Thymeleaf 메세지 표현식(Message Expressions)
by 캐떠린메세지 표현식(Message Expressions)
- Message Expressions, 메시지 표현식 #{...}
Spring message 특징
: 다국어 지원 및 반복적으로 사용하는 문자열(ex. alert창 문구 등)을 저장하여 관리할 수 있다.
저번 포스팅에서 사용했던 프로젝트에 이어서 작업하기
1. TestController.java
@GetMapping(value = "/m3.do")
public String m3(Model model) {
//스프링 메시지, Spring Message
// - 프로젝트 내에서 자주 사용되는(반복적인) 문자열
// - 다국어 지원
return "m3";
}
2. 파일 추가(파일명은 예약어이므로 변경 없이 그대로 사용!)
- src/main/resources → "messages.properties", "messages_en.properties", "messages_ja.properties"
원래 다국어별 예약어 풀네임은 위의 파일명보다 조금 기나 위에서 사용한 건 축약된 ver.
3. Settings → General → Content Types → Text 화살표 클릭 → Java Properties File → 하단 Default encoding: UTF-8로 변경
만약 인코딩 설정을 바꾸지 않고 properties 파일에 한국어 입력 시 아래 사진과 같이 한글이 보이지 않는 현상이 발생한다. 그러므로 인코딩 설정을 UTF-8로 먼저 설정하고 진행해주자!
4. messsages.properties
language=한국어
item.title=컴퓨터용품
item.name=마우스
item.color=검정
item.option=왼손 사용자
item.desc=제품명은 {0}입니다. 색상은 {1}입니다.
5. messages_en.properties
language=English
item.title=Computer Product
item.name=Mouse
item.color=Black
item.option=Left Hand
item.desc=Product name is {0}, Color is {1}.
6. messages_ja.properties
language=日本語
item.title=上品
item.name=マウス
item.color=黒
item.option=左利き用
item.desc=製品名は{0}です。 色は{1}です。
7. m3.html
<!DOCTYPE html>
<html xmlns:th="https://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://me2.do/5BvBFJ57">
</head>
<body>
<h1>스프링 메시지</h1>
<h2 th:text="#{language}"></h2>
<h3 th:text="#{item.title}"></h3>
<ul>
<li th:text="#{item.name}"></li>
<li th:text="#{item.color}"></li>
<li th:text="#{item.option}"></li>
</ul>
<div th:text="#{item.desc(제품명, 색상)}"></div>
<div th:text="#{item.desc(#{item.name}, #{item.color})}"></div>
</body>
</html>
8. 브라우저 설정 → 언어 → 한국어 설정
9. 브라우저 설정 → 언어 → 영어(미국) 설정
10. 브라우저 설정 → 언어 → 일본어 설정
*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업
'Spring' 카테고리의 다른 글
블로그의 정보
All of My Records
캐떠린