본문 바로가기

코딩/Spring

Spring message properties 메시지 설정하는 법

spring에서는 

 

여러개의 언어를 설정할때, 여러가지 html을 만들지 않으려고 message properties를 지원한다.

 

ex)

index_ko.html

index_us.html

index_jp.html

등등

 

여러가지 html을 만들기 보다.

한가지 html에서 properties를 사용하여 여러가지 언어를 지원하는 것이다.

 

스프링 부트를 사용하지 않으면 직접 properties를 설정해줘야하는 번거로움이 있다. (필자는 부트를 사용했다. 아닌 사람들을 위해 소스코드 하나를 올려둔다)

 

@Configuration
public class MessageConfig {

    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasenames("properties가 있는 이름(ex:messages)");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }
}

 

 

여기서 주의할 점은 빈으로 등록한 이름이 반드시 messageSource이어야 한다는 것이다.

 

 

스프링 부트를 사용하면 일단 properties 하나를 작성해 보자.

 

 

여기서 이제 html로 가서 작성하면 된다. 필자는 thymeleaf를 사용했다.

 

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<p th:text="#{title}"></p>
</body>
</html>

 

여기서 중요한점은 인텔리제이를 사용하거나 이클립스를 사용하거나 properties에 인코딩을 해주어야한다.

 

 

 

 

설정으로 가서 다음과 같이 해주면 된다.

 


또 한가지더

여기에 있는 static은 정적 페이지이다 그러므로 properties가 적용되지 않는다.

여기서 2시간정도 시간낭비를...ㅠㅠ

 

새삼 스프링부트의 편함을 느낀다..