0
我試圖驗證使用Hibernate Validator
的請求對象。基於活動驗證組的相同字段上的不同驗證
作爲一個簡單示例,假定我試圖驗證的對象的類別具有B bObj
字段,其中B
是另一個具有String name
字段的類。
由於這個原因,我已經實現了我自己定製的Constraint Annotations
鏈接到自定義MyValidator implements ConstraintValidator
類。
DTO類
@AclassValidate(groups = {Operations.Insert.class, Operations.Update.class javax.validation.groups.Default.class})
public class A {
@BclassValidate(groups = {Operations.Insert.class, Operations.Update.class})
private B bObj;
// setters, getters
}
我的終點法簽名(其中驗證器被調用,並且有源組被設置):
@PostMapping("/test")
public A createA(
@Validated(value = Operations.Insert.class)
// @Validated(value = Operations.Update.class)
@RequestBody A a
)
我的驗證器類
public class BclassValidator implements ConstraintValidator<BclassValidate, B> {
public void initialize(BclassValidate constraintAnnotation) {
}
public boolean isValid(B b, ConstraintValidatorContext constraintContext) {
boolean valid = true;
// Get active group here
activeGroup = ..?
if (activeGroup == Operations.Insert.class) {
// check if b.getName() equals to "John"
}
else if (activeGroup == Operations.Update.class) {
// check if b.getName() equals to "Doe"
}
return valid;
}
}
我想實現的是對基於活動組的相同字段應用不同的驗證。活動組是組,設置爲@Validated
註釋。問題是我如何檢索活動組以便根據其值應用不同的驗證?