如何将字段名称传递给属性文件中的全局消息
Posted
技术标签:
【中文标题】如何将字段名称传递给属性文件中的全局消息【英文标题】: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)
但这不是一个选项,因为其他代码会按原样使用消息。
【问题讨论】:
【参考方案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"));
【讨论】:
感谢您的信息。当我在决策过程中向上移动时,我会尽量记住你的两个警告。现在,这些决定已经做出。谢谢!以上是关于如何将字段名称传递给属性文件中的全局消息的主要内容,如果未能解决你的问题,请参考以下文章
如何将变量传递给 oracle 中的 min 和 max 函数?