Java 基于Spring自定义条件的验证
我想在SpringValidator中创建基于条件的验证。 我有一个UserDTO类,因为有两个DTO类带有Java 基于Spring自定义条件的验证,java,spring,spring-mvc,spring-boot,spring-validator,Java,Spring,Spring Mvc,Spring Boot,Spring Validator,我想在SpringValidator中创建基于条件的验证。 我有一个UserDTO类,因为有两个DTO类带有@Valid注释 如果我通过了isPrimarytrue,那么它应该只验证primaryDTObean,而忽略secendoryDTO验证 public class UserDTO { @Valid private PrimaryDTO primaryDTO; @Valid private SecendoryDTO secendoryDTO; pri
@Valid
注释
如果我通过了isPrimarytrue
,那么它应该只验证primaryDTObean,而忽略secendoryDTO验证
public class UserDTO {
@Valid
private PrimaryDTO primaryDTO;
@Valid
private SecendoryDTO secendoryDTO;
private boolean isPrimary;
}
public class PrimaryDTO {
@NotEmpty(message = "Please enter email.")
@Email(message = "Please enter a valid email.")
private String email;
}
public class SecendoryDTO {
@NotEmpty(message = "Please enter phone.")
private String phone;
}
请导游
谢谢如果您的验证依赖于多个字段(例如,
isPrimary
和primaryDTO
或secondaryDTO
),那么唯一的解决方案就是在类级别(UserDTO
)编写一个自定义验证程序,它将实现条件验证本身
例如,创建注释:
@已记录
@保留(运行时)
@目标({注释类型,类型})
@约束(validatedBy=SecondaryValidator.class)
public@interface ValidSecondary{
字符串消息()默认为“无效的辅助”;
类[]组()默认值{};
类如果您的验证依赖于多个字段(例如isPrimary
和primaryDTO
或secondaryDTO
),那么唯一的解决方案是在类级别(UserDTO
)编写一个自定义验证器,它将实现条件验证本身
例如,创建注释:
@已记录
@保留(运行时)
@目标({注释类型,类型})
@约束(validatedBy=SecondaryValidator.class)
public@interface ValidSecondary{
字符串消息()默认为“无效的辅助”;
类[]组()默认值{};
ClassI收到一个错误,原因是:java.lang.NoSuchMethodException:SecondaryValidator。()在此类中SecondaryValidator
@ParthSolanki您可能应该将@Autowired
添加到构造函数中。我收到一个错误,原因是:java.lang.NoSuchMethodException:SecondaryValidator。()在这个类中,您可能应该将@Autowired
添加到构造函数中。