代码之家  ›  专栏  ›  技术社区  ›  Berlin Brown

Java/Struts资源包与替换表达式

  •  4
  • Berlin Brown  · 技术社区  · 16 年前

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

    A.properties:

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

    2 回复  |  直到 6 年前
        1
  •  11
  •   Behnam user10544    12 年前

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

        2
  •  2
  •   LukáÅ¡ Rampa    16 年前

    有这个班 org.apache.struts.util.MessageResources 使用各种方法getmessage,其中一些方法采用参数插入到实际消息中。

    如。:

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