note

struts2 국제화 본문

JSP/Struts2

struts2 국제화

투한 2012. 2. 23. 12:27






struts.properties
#디폴트 리소스 번들 지정
struts.custom.i18n.resources=message


message.properties
say.hello=Hello.


messageTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>메세지 테스트</title>
</head>
<body>
<s:text name="say.hello"/>
</body>
</html>




사실상 국제화라고 까지 할순 없지만....



(Action이 없다)

 

































struts.xml
<!-- 국제화 -->
		<action name="getText" class="com.ch7.action.GetTextAction">
			<result name="success">success.jsp</result>
		</action>


GetTextAction_en.properties
message1=This is message1.
message3=I like {0},{1},{2}


GetTextAction_ko.properties
message1=이것은 메세지 1입니다.
message3=나는 {0},{1},{2} 를 좋아합니다.


GetTextAction.java
package com.ch7.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class GetTextAction extends ActionSupport{

	String message1;
	String message2;
	String message3;
	
	@Override
	public String execute() throws Exception {
		message1 = getText("message1");
		//message2 = getText("message2");
		message2 = getText("message2","Where is message2?");
		
		String[] arguments = {"girls","wine","gambling"};
		message3 = getText("message3",arguments);
		return SUCCESS;
	}

	public String getMessage1() {
		return message1;
	}

	public String getMessage2() {
		return message2;
	}

	public String getMessage3() {
		return message3;
	}
}



success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>국제화 연습</title>
</head>
<body>
${message1}<br/>
${message2}<br/>
${message3}<br/>
</body>
</html>