All of My Records

[Spring Boot] Thymeleaf 타임리프 템플릿 사용하기 (4) :: Thymeleaf 메세지 표현식(Message Expressions)

by 캐떠린

메세지 표현식(Message Expressions)

  • Message Expressions, 메시지 표현식 #{...}

 

Spring message 특징
: 다국어 지원 및 반복적으로 사용하는 문자열(ex. alert창 문구 등)을 저장하여 관리할 수 있다.

 

저번 포스팅에서 사용했던 프로젝트에 이어서 작업하기

 

[Spring Boot] Thymeleaf 타임리프 템플릿 사용하기 (3) :: Thymeleaf 변수 표현식 및 선택 변수 표현식

변수 표현식(Variable Expression) 및 선택 변수 표현식(Selection Variable Expression) Variable Expressions, 변수 표현식 '${...}' Selection Variable Expression, 선택 변수 표현식 '*{...}' 타임리프 템플릿 사용하기 (1)에서

pigsnowworld.tistory.com

 

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. 브라우저 설정 → 언어 → 한국어 설정

http://localhost:8090/m3.do 페이지 이동 시 자동으로 한국어 출력

 

9. 브라우저 설정 → 언어 → 영어(미국) 설정

http://localhost:8090/m3.do 페이지 이동 시 자동으로 영어 출력

 

10. 브라우저 설정 → 언어 → 일본어 설정

http://localhost:8090/m3.do 페이지 이동 시 자동으로 일본어 출력

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기