提问人:Berlin Brown 提问时间:9/16/2008 最后编辑:akashBerlin Brown 更新时间:12/20/2018 访问量:8734
来自 Java/Struts 的 ResourceBundle 和替换表达式
ResourceBundle from Java/Struts and replace expressions
问:
如果我有一个资源包属性文件:
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 进行替换。
答:
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!!!");
评论