Java/Struts의 ResourceBundle 및 표현식 바꾸기
-
09-06-2019 - |
문제
리소스 번들 속성 파일이 있는 경우:
A.속성:
thekey={0} This is a test
그리고 리소스 번들을 로드하는 Java 코드가 있습니다.
ResourceBundle labels = ResourceBundle.getBundle("A", currentLocale);
labels.getString("thekey");
{0} 텍스트를 어떤 값으로 바꾸려면 어떻게 해야 합니까?
labels.getString("thekey", "Yes!!!");
출력은 다음과 같이 나옵니다.
Yes!!! This is a test.
이를 수행하기 위한 리소스 번들의 일부인 메서드는 없습니다.또한 저는 Struts에 있습니다. MessageProperties를 사용하여 교체를 수행할 수 있는 방법이 있습니까?
해결책
찾고 있는 클래스는 java.text.MessageFormat입니다.구체적으로 전화
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"
[안타깝게도 Struts 연결에 대해서는 도움을 드릴 수 없습니다. 이것 관련성이 있는 것 같습니다.]
다른 팁
수업이 있어요 org.apache.struts.util.MessageResources 다양한 getMessage 메소드를 사용하면 그 중 일부는 실제 메시지에 삽입하기 위해 인수를 사용합니다.
예:
messageResources.getMessage("thekey", "Yes!!!");
제휴하지 않습니다 StackOverflow