来自 Java/Struts 的 ResourceBundle 和替换表达式

ResourceBundle from Java/Struts and replace expressions

提问人:Berlin Brown 提问时间:9/16/2008 最后编辑:akashBerlin Brown 更新时间:12/20/2018 访问量:8734

问:

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

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 Jakarta-EE Struts 资源包

评论


答:

11赞 user10544 9/16/2008 #1

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

2赞 Lukáš Rampa 9/16/2008 #2

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

例如:

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