풀스택 개발자 2020. 5. 9. 23:29

message

 

properties message 등록

 

java

//properties를 message등록
	@Bean
	public ReloadableResourceBundleMessageSource messageSource() {
		ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource();
		
		//res.setBasename("/WEB-INF/properties/data1");//한개일때 
		res.setBasenames("/WEB-INF/properties/data1","/WEB-INF/properties/data2");//한개이상일때
		
		return res;
	}

 

xml

	<!-- Messagesource등록 -->
	<beans:bean
		class='org.springframework.context.support.ReloadableResourceBundleMessageSource' id='messageSource'>
		<!--properties가 한개일때 <beans:property name="basename" value=/WEB-INF/properties/data1"/> -->
		<beans:property name="basenames">
			<beans:list>
				<beans:value>/WEB-INF/properties/data1</beans:value>
				<beans:value>/WEB-INF/properties/data2</beans:value>
			</beans:list>

		</beans:property>
	</beans:bean>
	
	
<!--  messagesource를 사용하기 위한 messageaccessor등록 -->
	<beans:bean id='messageSourceAccessor' class='org.springframework.context.support.MessageSourceAccessor'>
		<beans:constructor-arg ref='messageSource'/>
	</beans:bean> 
		

 

xml에서 주입후 출력

package kr.co.softcampus.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class TestController {
	
	@Autowired
	ReloadableResourceBundleMessageSource res;
	
	@GetMapping("/test1")
	public String test1() {
		String a1=res.getMessage("aaa.a1",null,null);//첫번째 입력한 데이터 두번째 {}{}값을  지정해줄때 세번째 다국어
		String a2=res.getMessage("bbb.b1", null, null);
		
		System.out.println(a1);
		System.out.println(a2);
		return "test1";
	}
}

messagesource를 주입받고 getter을 사용하여 값을 불러옴

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>test1</h1>
	<h3>aaa.a1:<spring:message code='aaa.a1'/></h3>
	<h3>bbb.b1:<spring:message code='bbb.b1'/></h3>
</body>
</html>

test1에 출력

 

출력창