[Spring] 공통 메시지 처리(ReloadableResourceBundleMessageSource)

배세훈·2021년 7월 26일
0

Etc/용어

목록 보기
11/16

1. ReloadableResourceBundleMessageSource를 사용하기 위한 설정

context-message.xml

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
	<property name="defaultEncoding" value="UTF-8" />
    <property name="basename" value="classpath:gptwr3" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
	<property name="defaultLocale" value="ko" />
</bean>

classpath로 지정된 곳에
gptwr3_ko.properties
gptwr3_en.properties 파일이 존재

ex) gptwr3_ko.properties
errors.minlength={0}은 {1}자 이상 입력해야 합니다.
fail.common.msg=에러가 발생했습니다!

MessageUtils.java

import java.util.Locale;

import org.springramework.context.MessageSource;;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MessageUtils{
	private static MessageSource resources = new ClassPathXmlApplicationContext("spring/context-message.xml");
    
    public static String getMessage(String code){
    	return resources.getMessage(code, null, Locale.getDefault);
    }
    
    public static String getMessage(String code, String args[]){
    	return resources.getMessage(code, args, Locale.getDefault);
    }
}

2. Java에서 메시지 사용하기

``` String[] args = {"사용자 이름", "2"}; String msg = MessageUtils.getMessage("errors.minlength", args); System.out.println("msg : " + msg); // msg : 사용자 이름은 2자 이상 입력해야 합니다.

String msg2 = MessageUtils.getMessage("fail.common.msg");
System.out.println("msg2 : " + msg2); // msg: 에러가 발생했습니다!



<h3>3. JSP에서 메시지 사용하기</h3>

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags">

<spring:message code="erros.minlength" arguments="사용자 이름, 2"></spring:message>

<spring:message code="fail.common.msg"></spring:message>






profile
성장형 인간

0개의 댓글