一个属性的基于上下文的JavaBean验证消息
假设我有一个简单的DTO,如下所示:
public class IdHolder {
@NotNull
private Long id;
// ...
}
public class Transport {
@Valid @NotNull(message = "{messages.fromLocationRequired}")
private IdHolder fromLocation;
@Valid @NotNull(message = "{messages.toLocationRequired}")
private IdHolder toLocation;
// ...
}
在以下情况下,我会收到很好的消息:
- fromLocation=null导致“您必须输入发件人位置”
- toLocation=null导致“您必须输入您的接收者位置”
但是如果对象不为null,但是它们对应的id为null,那么我也希望获得这些消息
那么,在Java Bean验证中是否有优雅的方法来配置以下条件:
- 从地点。id=null导致“您必须输入发件人位置”
- toLocation。id=null导致“您必须输入您的接收者位置”
?
# 1 楼答案
不,在Bean验证和Hibernate验证程序中都无法做到这一点。约束验证器(默认)没有关于当前路径的任何上下文信息