将keyvalue(消息密钥)中的动态参数传递给package.properties

时间:2011-12-23 05:21:09

标签: struts2 resourcebundle

我尝试将动态参数传递给keyvalue(message to display),我将通过package.properties方法从Action传递到getText()类。要获取消息,我们可以使用getText(String keyvalue)方法。如何通过getText()方法传递一些参数并通过消息检索参数?

我看到了一些传递动态参数的API。但我不知道如何使用,这些是以下API,单击here以查看Struts 2 API文档。

  1. getText(String aTextName, List<Object> args)
  2. getText(String key, String[] args)
  3. getText(String key, String defaultValue, String[] args)
  4. 提前致谢..

1 个答案:

答案 0 :(得分:7)

我认为您的package.properties

中有以下属性
  1. username.required=user name is required
  2. password.required=password is required
  3. 您可以使用getText()作为

    getText("username.required")
    getText("password.required")
    

    现在,如果我们想使用getText(String key, String[] args),我们必须传递以下参数

    aTextName -要搜索的资源包密钥

    args -要在MessageFormat消息中使用的列表args

    这意味着消息格式模式和其他静态字符串当然可以从资源包中获取。其他参数将在运行时动态确定。 例 我们在资源文件中有以下条目

    disk.data=The disk \"{0}\" artist name is {1}.
    
    {1}{0}中的

    是动态参数,将在运行时确定,因此args将包含这些参数的值。

    String artistName= demo;
     String diskName = "Artist";
     String[] testArgs = {artistName, diskName};
    

    最终通话将是getText(disk.data, testArgs); 它会显示

    The disk demo artist name is Artist.
    

    请通过MessageFormat了解这项工作的方式