java – JSR-303附加默认验证消息

我正在使用JSR-303的Apache Bean Validation实现,并且很奇怪是否有一种方法可以将消息附加到ValidationMessages.propeties文件中定义的默认消息.

I.E. @NotNull(message =“Object objectField name {message}”)

输出:Object objectField name不能为null

消息只会附加默认消息

这可能使用Apache Bean Validation 0.3或Hibernate Validation 4.1.0-Final API ???

或者我被迫做这样的事情:

ValidationMessage.properites
javax.validation.constraints.NotNull.message=may not be null

代码:

@NotNull(message="Object objectField name {javax.validation.constraints.NotNull.message}")

这看起来非常冗长.

最佳答案 不,没有办法做到这一点.

有关更多信息,请参阅JSR-303,第4.3.1.1节.

你可以这样做:

ValidationMessage.properties

custom.message=Object objectField name {javax.validation.constraints.NotNull.message}

@NotNull(message="{custom.message}")

得到你想要的.自定义消息属性(根据JSR)应该以递归方式解析.我不知道Apache Validator目前的兼容性如何,但我可以告诉你,Hibernate Validator(符合100%TCK)会做到这一点.

点赞