MessageResource 사용하기
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍
실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
www.onjprogramming.co.kr 웹 애플리케이션을 다중 언어가 지원 되도록 만들려고 일일이 매 페이지를 다르게 만든다고 하는 일은 대단히 수고스러운 일 입니다.
자바에서는 java.util.ResourceBundle 클래스를 통해 국제화를 지원하고 있으며 스트럿츠에서는 국제화를 지원하기 위해 org.apache.struts.util.MessageResource를 제공 합니다.
이러한 리소스 번들은 국제화 뿐 아니라 지역화된 프로그램에서도 유지 보수 시간을 줄여 주는 이점이 있습니다. 예를 들어 웹사이트 전체에 사용되는 텍스트나 라벨인 경우 변경이 필요 한 경우 단지 리소스 번들 프로퍼티 파일만 수정 함으로서 간단히 해결 할 수 있습니다.
스트럿츠 1.1 이상에서는 여러 개의 리소스 번들 파일을 지원 합니다.
아래에는 메시지들을 등록 해 놓은 리소스 번들 properties 파일 입니다.
(application.properties)
login.title = LogIn
login.login = Login
login.reset = Cancel
prompt.id= User ID :
prompt.password=Password :
main.title=Main
###############################################
error.id.required=<li>ID REQUIRED.</li>
error.pwd.required=<li>PASSWORD REQUIRED</li>
error.login.invalid=<li>ID/PASSWORD NOT CORRECT</li>
errors.header=<h3><font color="red">ERROR!</font></h3>
You must correct the following error(s) before proceeding:<UL>
errors.footer=</ul><hr>
아래는 이러한 메시지를 KEY값을 이용하여 VIEW에서 불러 오는 예젭니다.
(login.jsp)
<%@ page pageEncoding="euc-kr" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<head>
<title><bean:message key="login.title" /></title>
<html:base/>
</head>
<body>
<!-- 웹서버가 보내는 응답에 오류가 있다면 출력 -->
<html:errors/>
<!-- LoginSummit에 대해서는 struts-config.xml에 Mapping을 하게 된다 -->
<!-- focus="id" 라는 문법에 의해 자동으로 자바스크립트를 생성 합니다. -->
<html:form action="/LoginSubmit" focus="id">
<table>
<!-- 아래에서 텍스트 출력은 application.properties에서 가져 옵니다... -->
<tr>
<th align="right"><bean:message key="prompt.id"/></th>
<!-- 아래는 input type=text 와 동일한 기능을 합니다 -->
<td><html:text property="id" value=""/></td>
</tr>
<tr>
<th align="right"><bean:message key="prompt.password"/></th>
<!-- 만약 로그인을 실패하여 다시 돌아오는 경우 pwd 항목의 값을 비울때는 아래처럼
redisplay="false" 라고 하면 됩니다. HTML의 password 항목과 유사함 -->
<td><html:password property="pwd" redisplay="false"/></td>
</tr>
<tr>
<!-- Submit 버튼과 Reset 버튼을 생성 -->
<!-- 버튼의 라벨은 application.properties에서 내용을 가져 옵니다 -->
<th></th>
<td>
<html:submit>
<bean:message key="login.login" />
</html:submit>
<html:reset>
<bean:message key="login.reset" />
</html:reset>
</td>
</tr>
</table>
</html:form>
</body>
</html>
다음은 리소스 파일을 사용하기 위해 struts-config.xml에 설정 한 예 입니다.
<!-- 아래는 스트러츠 Application에서 사용할 Message Resource들을 설정 -->
<!-- 확장자가 properties인 application.properties를 만들어 넣으면 된다 -->
<message-resources parameter="resources.application"/>
댓글 없음:
댓글 쓰기