4

如果我有一个资源包属性文件:

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 进行替换。

4

2 回答 2

11

您要查找的类是 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 连接,尽管看起来很相关。]

于 2008-09-15T23:59:14.687 回答
2

org.apache.struts.util.MessageResources类具有各种方法 getMessage,其中一些带参数插入到实际消息中。

例如。:

messageResources.getMessage("thekey", "Yes!!!");
于 2008-09-16T00:15:18.457 回答