【问题标题】:How to pass a field name to the global message in the properties file如何将字段名称传递给属性文件中的全局消息
【发布时间】:2016-01-14 02:07:32
【问题描述】:

我的 global-messages.properties 文件中有以下消息。

errors.integer=${getText(fieldname)} must be an integer.

与validation.xml 代码配合得很好,但我希望能够在我的Java 操作验证方法中使用addFieldError() 方法中的相同消息。我的问题是如何将fieldname 传递给消息。如果我使用:

addFieldError("seqId", getText("errors.integer"));

我只得到“必须是整数”。消息的一部分。我知道我可以更改消息并使用 {0} 而不是 ${getText(fieldname)} 但这不是一个选项,因为其他代码会按原样使用消息。

【问题讨论】:

    标签: java struts2 internationalization resourcebundle properties-file


    【解决方案1】:

    其他人向我展示了另一种可行的方法,我认为我会分享。

    addFieldError("",getText("seqId")+ getText("errors.integer"));
    

    【讨论】:

      【解决方案2】:

      首先:您应该避免在属性中使用getText,因为它仅在某些上下文中可用。

      第二:你应该避免在属性中使用fieldname,因为它是验证器特定的字段。

      要实现您想要的,无需修改属性文件,您可以使用 getter/setter 在您的操作中创建 fieldname 属性,并在使用 addFieldError 之前设置其值。

      private String fieldname;
      // getter/setter
      
      // ...
      fieldname = "seqId";
      addFieldError("seqId", getText("errors.integer"));
      

      【讨论】:

      • 感谢您的信息。当我在决策过程中向上移动时,我会尽量记住你的两个警告。现在,这些决定已经做出。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多