Java JSR303bean验证

Java JSR303bean验证,java,javabeans,bean-validation,Java,Javabeans,Bean Validation,我的bean中有两个字段 String key, String value, 当字段key=“A”时,“value”应该跟在特定的正则表达式后面 对于其他“键”-它可以是任何东西 如何基于键定义此值验证。您可以使用类级约束 1-使用类级自定义约束注释对bean进行注释: @ValidKeyValue public class MyBean { private String key; private String value; ... } 2- 3-在isValid方法

我的bean中有两个字段

String key,
String value,
当字段key=“A”时,“value”应该跟在特定的正则表达式后面 对于其他“键”-它可以是任何东西


如何基于键定义此值验证。

您可以使用类级约束

1-使用类级自定义约束注释对bean进行注释:

@ValidKeyValue
public class MyBean {
    private String key;
    private String value;
    ...
}
2-

3-在
isValid
方法中实现验证逻辑:

@Override
public boolean isValid(MyBean myBean, ConstraintValidatorContext context) {
    if ("A".equals(myBean.getKey())) {
        // case 1
    } else {
        // case 2
    }
}

将其实现为对象级验证。对象级验证无法执行,因为在执行REST服务时,它不是一种标准方法-验证留给容器(用于bean验证的Hibernate库)我不理解该注释:(.hmm..当你说对象级验证时,你的意思是-if(object.getA()=“a”){apply regex pattern}..我指的是对象级约束()。