来自Java/Struts和replace表达式的ResourceBundle

来自Java/Struts和replace表达式的ResourceBundle,java,jakarta-ee,struts,resourcebundle,Java,Jakarta Ee,Struts,Resourcebundle,如果我有一个资源包属性文件: 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 te

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

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"});

会回来的

"Yes!!! This is a test"
[不幸的是,我无法帮助Struts连接,尽管看起来很相关。]

有一个类具有各种方法getMessage,其中一些方法使用参数插入到实际的消息中

例如:

"Yes!!! This is a test"
messageResources.getMessage("thekey", "Yes!!!");