我的global-messages.properties文件中有以下消息。
errors.integer=${getText(fieldname)} must be an integer.
使用validation.xml代码可以正常工作,但我希望能够在我的java动作验证方法中使用addFieldError()
方法使用相同的消息。我的问题是如何将fieldname
传递给消息。如果我使用:
addFieldError("seqId", getText("errors.integer"));
我只得到"必须是整数。"消息的一部分。我知道我可以更改消息并使用{0}
而不是${getText(fieldname)}
,但这不是一个选项,因为其他代码会按原样使用消息。
答案 0 :(得分:3)
首先:你应该真的避免在属性中使用getText
,因为它仅在某些上下文中可用。
第二:您应该避免在属性中使用fieldname
,因为它是验证程序特定字段。
要实现您想要的功能,无需修改属性文件,您可以使用getter / setter在操作中创建fieldname
属性,并在使用addFieldError
之前设置其值。
private String fieldname;
// getter/setter
// ...
fieldname = "seqId";
addFieldError("seqId", getText("errors.integer"));
答案 1 :(得分:2)
其他人向我展示了另一种方式,我认为我会分享。
addFieldError("",getText("seqId")+ getText("errors.integer"));