Spring,JSR 303 - 嵌套字段上的验证组
Spring, JSR 303 - Validation groups on nested fields
这是例子,胜于文字:
public class Person{
private String name;
// 1 ) @Valid(FirstAdress.class) -> The attribute value is undefined for the annotation type Valid
// 2 ) @Validated(FirstAdress.class) -> The annotation @Validated is disallowed for this location
@Valid
private Adress firstAdress;
// 1 ) @Valid(SecondAdress.class)
// 2 ) @Validated(SecondAdress.class)
@Valid
private Adress secondAdress;
}
和
public class Adress {
@Size(min = 5, groups = { FirstAdress.class })
@Size(min = 10, groups = { SecondAdress.class })
private String city;
public interface FirstAdress{
}
public interface SecondAdress{
}
}
因此,对于对象 firstAdress,字段 city 必须至少为 5 个字符,对于 secondAdress,city 必须至少为 10 个字符(仅作为示例)。
代码中的解决方案1)和2)还没有working/available,我想知道我想做的是否可行,或者是否有其他方法可以实现。
非常感谢!
我试过了:
@Valid
@ConvertGroup(to = FirstAdress.class)
private Adress firstAdress;
@Valid
@ConvertGroup(to = SecondAdress.class)
private Adress secondAdress;
现在它似乎有效!如果此解决方案最终出现问题,我将更新此 post :)
这是例子,胜于文字:
public class Person{
private String name;
// 1 ) @Valid(FirstAdress.class) -> The attribute value is undefined for the annotation type Valid
// 2 ) @Validated(FirstAdress.class) -> The annotation @Validated is disallowed for this location
@Valid
private Adress firstAdress;
// 1 ) @Valid(SecondAdress.class)
// 2 ) @Validated(SecondAdress.class)
@Valid
private Adress secondAdress;
}
和
public class Adress {
@Size(min = 5, groups = { FirstAdress.class })
@Size(min = 10, groups = { SecondAdress.class })
private String city;
public interface FirstAdress{
}
public interface SecondAdress{
}
}
因此,对于对象 firstAdress,字段 city 必须至少为 5 个字符,对于 secondAdress,city 必须至少为 10 个字符(仅作为示例)。
代码中的解决方案1)和2)还没有working/available,我想知道我想做的是否可行,或者是否有其他方法可以实现。
非常感谢!
我试过了:
@Valid
@ConvertGroup(to = FirstAdress.class)
private Adress firstAdress;
@Valid
@ConvertGroup(to = SecondAdress.class)
private Adress secondAdress;
现在它似乎有效!如果此解决方案最终出现问题,我将更新此 post :)