[스프링] <spring:message>

Nux·2022년 4월 6일
0
post-custom-banner

<spring:message>

다국어 지원 및 반복적으로 사용하는 문자열은 properties파일로 관리 가능
1. src/resources/에 사용할 문자열을 작성한 properties파일 등록

fail.common=실패
button.save=저장
...
  1. 빈등록
    2-1. context.xml에 bean 등록
  • bean id나 class 등은 건드리지 않음
	<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
		<property name="basenames"> 
			<list>
			 	<value>메세지파일경로</value>
			</list>
	 	</property> 
		<!--인코딩 설정-->
	 	<property name="defaultEncoding" value="UTF-8" /> 
	 	 
	 	<!-- properties 체크--> 
	 	<property name="cacheSeconds" value="" /> 
	 </bean> 

2-2. 자바파일로 Bean등록

@Bean
public MessageSource messageSource() { // Bean 이름은 messageSource여아 한다.
   
    ResourceBundleMessageSource ms = new ResourceBundleMessageSource();
    ms.getBasenames("파일명"); // resources/ 이후 경로
    ms.setDefaultEncoding("UTF-8"); // 인코딩 설정
    return ms;
}
  1. jsp파일 상단에 taglib 추가
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
  1. spring:message 태그 이용해서 문자열 출력
<spring:messsage code="fail.common(불러올 텍스트의 key값)" text="code값이 없을 시 출력 할 메세지 설정"/>

arguments / var

arguments

  • 지정된 부가 인자({0},{1}, ...) 값을 출력
msg.text={0}님, 반갑습니다
msg.fruits={0}, {1} 그리고 {2}
<spring:message code="msg.text" arguments="스미스"/>
-> 스미스님, 반갑습니다.

<spring:message code="msg.fruits" arguments="사과, 포도, 오렌지"/>
-> 사과, 포도 그리고 오렌지
  • 부가인자의 갯수만큼 arguments가 등록되지 않으면 사과, 포도 그리고 {2}처럼 출력됨

var

  • 값을 변수로 할당
msg.text=안녕하세요
<spring message code="msg.text" var="greeting">
${greeting}
-> 안녕하세요
post-custom-banner

0개의 댓글