2008-09-15 7 views
4

나는 자원 번들 프로퍼티 파일이있는 경우 :자바/스트럿츠에서의 ResourceBundle 및 대체 표현

A.properties : thekey은 = {0}이 테스트

입니다 그리고 내가 그 부하 자바 코드를 자원 번들 : 나는 어떤 값으로 {0} 텍스트를 대체 할 수있는 방법

ResourceBundle labels = 
    ResourceBundle.getBundle("A", currentLocale); 
labels.getString("thekey"); 

labels.getString ("thekey", "예!");

출력이 다음과 같이 나타납니다.

예 !!! 이것은 시험입니다.

이렇게하려면 리소스 번들의 일부인 메소드가 없습니다. 또한 Struts에 있는데 MessageProperties를 사용하여 대체 할 수있는 방법이 있습니까?

답변

11

원하는 클래스는 java.text.MessageFormat입니다. [this 관련 보이지만, 불행하게도, 내가 Struts의 연결을 도울 수 없어요.] 특히,

MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"}); 

또는

MessageFormat.format("{0} This {1} a test", "Yes!!!", "is"); 

를 호출하면

"Yes!!! This is a test" 

돌아갑니다

2

클래스 org.apache.struts.util.MessageResources에는 다양한 메소드 getMessage가 있으며 그 중 일부는 t입니다. ake 실제 메시지에 삽입 할 인수.

예 :

messageResources.getMessage("thekey", "Yes!!!");