메시지란 ?
메시지는 메시지 코드와 메시지 콘텐츠를 정리하여, 메시지 코드를 통해 내용을 호출하는 방법이다.
메시지를 사용하는 경우
- 클라이언트에 보여줘야하는 문자 관리
- 다국어 지원 관리
- 에러 코드와 에러 메시지 관리
- 반복적으로 사용하는 문자열 관리
Message를 사용하기 위해서는 MessageSource의 구현체인 ResourceBundleMessageSource를
Bean에 등록해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | @Configurer public class WebMvcConfig implements WebMvcConfigurer { @Bean public MessageSource messageSource() { // 빈 이름을 꼭 'messageSource'로 명시 ResourceBundleMessageSource rbm = new ResourceBundleMessageSource(); // 인코딩 방식 설정 rbm.setDefaultEncoding("utf-8"); // 메시지를 관리할 파일 이름 지정 // message는 폴더명 messages는 properties 파일 이름 rbm.setBasenames("message.messages"); return rbm; } // 언어 변경을 위한 인터셉터 생성 @Bean public LocaleChangeInterceptor localeChangeInterceptor { LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor(); // lang은 url 매개변수 이름을 나타냄 // http://example.com/page?lang=KR이나 http://example.com/page?lang=ENG와 같이 주소를 설정하여 // 언어 변경을 감지할 수 있음 interceptor.setParameName("lang"); return interceptor; } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(localeChangeInterceptor()); } } | cs |
src/main/resources 아래 message 폴더 생성
> messages_KR.properties 파일 생성
> messages_ENG.properties 파일 생성
message_KR.properties 파일
1 2 3 4 | helloWorld=안녕 세계 common.hi=안녕 common.bye=잘가 | cs |
message_ENG.properties 파일
1 2 3 4 | helloWorld=helloWorld common.hi=hi common.bye=bye | cs |
다국어 처리를 위해 properties파일에 동시에 적어주는 것이 좋다.
언어 변경을 감지하면 영어, 한국어 알아서 바뀜
jsp 파일
1 2 3 4 5 6 7 | <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <body> <h1><spring:message code="helloWorld" /></h1> <h1><spring:message code="common.hi" /></h1> <h1><spring:message code="commonn.bye" /></h1> </body> | cs |
언어 변경을 감지하여 문자가 출력됨
'프로그래밍 > Spring Boot' 카테고리의 다른 글
Spring Boot_MyBatis <![CDATA[]]> (0) | 2023.08.30 |
---|---|
Spring Boot_MyBatis sql 태그와 include 태그 (0) | 2023.08.24 |
Spring Boot_Model과 ModelAndView (0) | 2023.08.22 |
Spring Boot_RestTemplate (0) | 2023.05.23 |
Spring Boot_Security 프로젝트 생성 및 Git 설정 (0) | 2023.05.13 |