java - 来自 Java/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 test.

Resource Bundle 中没有方法可以做到这一点。另外,我在 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 连接,虽然this看起来很相关。]

关于java - 来自 Java/Struts 的 ResourceBundle 和替换表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68018/

相关文章:

java - 是否有支持 Java 的移动设备列表?

java - 程序切片插件Indus和kaveri在eclipse中如何工作?

java - 启动脚本中的 GATE -Dgate.plugins.home 选项

java - struts中的正则表达式

java - Struts基本类加载问题

java - 我们可以编写带有 void 返回类型的 struts dispatchAction 方法吗?

java - Hector 或 CQL,我应该使用哪个

java - 智能 : Change the color of classes or data types for Java

java - 无法检索表单 bean 的定义

基于类型参数的Java EE注入(inject)