Java 如何将字段名传递给属性文件中的全局消息

Java 如何将字段名传递给属性文件中的全局消息,java,struts2,internationalization,resourcebundle,properties-file,Java,Struts2,Internationalization,Resourcebundle,Properties File,我的global-messages.properties文件中有以下消息 errors.integer=${getText(fieldname)}必须是整数。 这可以与validation.xml代码配合使用,但我希望能够在java操作验证方法中使用与addFieldError()方法相同的消息。我的问题是如何将字段名传递给消息。如果我使用: addFieldError(“seqId”,getText(“errors.integer”); 我只得到消息中的“必须是整数”部分。我知道我可以更改

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

errors.integer=${getText(fieldname)}必须是整数。
这可以与validation.xml代码配合使用,但我希望能够在java操作验证方法中使用与
addFieldError()
方法相同的消息。我的问题是如何将
字段名
传递给消息。如果我使用:

addFieldError(“seqId”,getText(“errors.integer”);

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

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

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

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

私有字符串字段名;
//吸气剂/塞特
// ...
fieldname=“seqId”;
addFieldError(“seqId”,getText(“errors.integer”);

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

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

谢谢你提供的信息。当我在决策过程中晋升时,我会尽力记住你的两个警告。现在这些决定已经做出。谢谢