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시간정도 시간낭비를...ㅠㅠ
새삼 스프링부트의 편함을 느낀다..
'코딩 > Spring' 카테고리의 다른 글
JPA 저장을 했는데, 데이터가 없는 경우 (0) | 2022.11.10 |
---|---|
Spring ajax json 및 데이터 가져오기 (1) | 2022.02.14 |
UnsatisfiedDependencyException,BeanCreationException,IllegalArgumentException [spring boot 에러] (1) | 2021.08.15 |
Spring boot) mybatis 사용하기(mysql) (1) | 2020.10.21 |