Message, MessageSource ?
* Properties파일을 메세지로 등록할 시, 해당내용을 서버영역과, 화면영역(JSP) 에서 전역적으로 활용 가능하다.
* 또한, Properties파일을 메세지로 등록할 시, 다국어 처리가 가능하다. (java.util.Locale)
* MessageSource 객체를 생성 및 활용하여, Properties파일을 메세지로 등록한다. 메시지로 등록된, Properties파일을 수정 시 웹서버(WAS)를 재 기동하지 않아도 수정사항이 반영된다.
Properties Message Exercise..
-- Java 설정.
1. Properties 파일생성
* WEB-INF --> properties폴더 --> {"message1","message1_en","message1_ko", "message2"}(.Properties) 파일생성.
* Properties Value로 선언된 내역 중, 중괄호 '{}'는 외부에서 호출시 전달되는 인자 값으로 치환된다.
2. ServletAppContext 수정 (MessageSource)
* properties파일 메세지등록을 위한 "MessageSource"
--> org.springframework.context.support.ReloadableResourceBundleMessageSource
( ReloadableResourceBundleMessageSource 빈(Bean) 생성시. properties파일들 경로설정 )
3. TestMessagePropertyController 컨트롤러 생성
* @Autowired 어노테이션을 선언하여 등록된 "ReloadableResourceBundleMessageSource" 빈(Bean) 주입 및 사용한다.
* ReloadableResourceBundleMessageSource의 getMessage() 메서드를 사용하여, 메세지로 등록된 properties파일 내용을 불러온다.
- getMessage메서드
- 첫번째 인자값으로 Properties파일 키(Key) 값, 설정된 키(Key) 값에 따라 매핑되는 데이터를 불러온다.
- 두번째 인자값으로 Properties파일로 전달 할 인자 값, 배열'{}' 형태로 전달한다.
- 세번째 인자값으로 다국어처리를 위한 Locale객체
* Locale은 사용하는 웹 브라우저(Explorer, Chrome)의 설정된 언어값을 가져와서 properties파일의 이름과 매핑되며, 다국어처리를 한다.
( 설정 언어 값 -- 한국: ko, 미국: en )
* properties파일이름에 (_ko, _en) 를 붙여서 브라우저에 언어 설정 값과 매핑
message1_ko.properties -- 한국(ko)
message1_en.properties -- 미국(영어: en)
message1.properties -- 나머지..
--> properties파일 별, 키(Key)와 Value(값)은 동일하나 설정 Locale에 따라 동적으로 값이 할당된다.
4. messageProperty 뷰 생성(.jsp)
* Spring에서 제공하는 커스텀태그를 사용하여 메세지로 등록된 properties파일 내용을 화면(JSP)에서 사용한다.
<spring:message code="키 값" arguments="전달 인자 값" />
5. Message확인 (Browser 테스트)
-- Xml 설정.
java 설정과 거의 동일하며 "빈 등록" 처리하는 부분만 다르다.
1. servlet-context.xml 수정 - "MessageSource 빈 등록"
* properties파일 메세지등록을 위한 "MessageSource" 빈(Bean) 등록
<beans:bean class="MessageSource 빈(Bean) 경로" id="외부영역 참조ID" >
( ReloadableResourceBundleMessageSource 빈(Bean) 생성시. properties파일들 경로설정 )
* MessageSource 객체를 통해서 Property파일에 접근할 수 있는 Accessor를 등록한다.
<beans:bean class="MessageSource 를 사용하기 위한 Accessor 빈(Bean) 경로" >
( MessageSourceAccessor 빈(Bean) 생성시. 생성자 매개변수로 "MessageSource" 주입)
* 서버단, 화면단에서 메세지로 등록된 properties파일에 접근하는 방법은 이전과 동일하다.
Exit..
'SpringMVC' 카테고리의 다른 글
[SpringMVC] Properties 정의 및 활용(1) (0) | 2021.10.20 |
---|---|
[SpringMVC] ApplicationScope Bean(2) (0) | 2021.10.16 |
[SpringMVC] ApplicationScope(1) (0) | 2021.10.11 |
[SpringMVC] SessionScope Bean(2) (0) | 2021.10.04 |
[SpringMVC] SessionScope(1) (0) | 2021.09.20 |