Spring message 태그를 이용한 메세지 관리
<title><spring:message code="${pageTitle}" text="Logged Out" /></title>
<label for="username"><spring:message code="screen.welcome.label.netid" /></label>
ㅁ ResourceBundleMessageSource 사용하기
- Spring 프레임워크 웹 어플리케이션에서 MessageSource 소스 관리를 위하여
ResourceBundleMessageSource을 사용한다.
- 보통 메세지 .properties 파일들이 WEB-INF/classes 디렉토리에 모여져 있다.
- MessageSource가 변경될 경우 MessageSource 를 반영할려면 애플리케이션 서버를 재시작해야한다.
더보기
ㅁ ReloadableResourceBundleMessageSource 사용하기 - 이것이 아주 유용한듯
- 애플리케이션 서버는 클래스패스에 있는 모든 리소스르 캐싱한다. 따라서 파일이 변경되더라도 적용되지
않는다. 그러나 ReloadableResourceBundleMessageSource 를 사용하면 MessageSource가
변경되어도 애플리케이션을 재시작할 필요가 없다.
- ReloadableResourceBundleMessageSource 를 사용하기 위해서는 WEB-INF/classes 디렉토리가
아닌 다른 디렉토리에서 MessageSource 파일을 관리해야 한다. (예 : WEB-INF/message)
접기
support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/messages/DBQuery</value>
<value>/WEB-INF/messages/Messages</value>
</list>
</property>
<property name="cacheSeconds" value="5"/>
</bean>
접기
- 파일 변경 확인을 위한 모니터링 시간 설정 [property name="cacheSeconds" value="5"]
ㅁ 클래스패스가 아닌 filesystem 경로 로딩하기
- 웹 애플리케이션이 아닌 경우 filesystem 경로 로딩할 경우 클래스 패스를 추가하거나 절대경로를 지정해
주어도 된다.
- ResourceBundleMessageSource 에선 사용할 수 없었던 file: 을
ReloadableResourceBundleMessageSource의 basenames에서는 사용할 수 있다.
접기
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>file:E:/svn/71common/htdocs/WEB-INF/classes/messages/messages_appr_msg</value>
</list>
</property>
<property name="cacheSeconds" value="0"/>
</bean>
접기
추가내용
html 코드에서 위에 설정한 메시지를 사용.
<tr> <td width="150" class="ct_td"><spring:message code="movie.title" /> *</td> <td bgcolor="D6D6D6" width="1"></td> <td class="ct_write01"> <form:input path="title" cssClass="ct_input_g" cssErrorClass="text medium error" size="40" maxlength="50" /> <form:errors path="title" cssClass="errors" /> </td> </tr>
spring:message에는 다음 7가지가 있습니다.
code: fmt:message의 key에 해당
arguments: 리소스 번들의 메시지에 {0}, {1} 같은 기호 자리에 들어갈 값을 나열
argumentSeparator: arguments 속성에 값을 구분하는 기호, 기본은 콤마(',')
text: code에 해당하는 메시지가 리소스 번들에 없을 때 사용될 메시지
message: MessageSourceResolvable 인터페이스를 구현한 객체 또는 MessageSourceResolvable를 나타내는 spel 식. 에러 메시지를 표시하려고 한다면 필요하겠죠.
htmlEscape: true일 때 HTML 엔티티를 인코딩
javaScriptEscape: true일 때 자바스크립트 문자열로 인코딩
var: fmt:message와 동일
scope: fmt:message와 동일
출처: https://groups.google.com/forum/#!topic/ksug/elQOAa2-53Y
'개발 > Spring' 카테고리의 다른 글
Spring Camp 2013 with Scala (0) | 2013.09.23 |
---|---|
[스프링] @Controller - 세션 관리@SessionAttributes (0) | 2013.09.13 |
spring 설정 xml과 소스코드에서 properties 사용하기 (0) | 2013.09.09 |
<util:properties/> 와 Spring EL 로 값 가져오기 (0) | 2013.09.09 |
Spring context:component (0) | 2013.09.06 |