Java 控制器'中没有@Valid的弹簧验证;在没有实现验证程序接口的情况下,是否使用s处理程序方法?
我有一个模型,其中一个字段用Java 控制器'中没有@Valid的弹簧验证;在没有实现验证程序接口的情况下,是否使用s处理程序方法?,java,spring,Java,Spring,我有一个模型,其中一个字段用@NotNull public class Employee { @NotNull private String name; //other fields and getters/setters } 但我没有控制器。我只想在调用此方法(此方法位于Spring组件的类中)或手动验证时调用Employee模型上的验证 使用控制器时,我可以使用注释处理程序方法,该方法带有@Valid Employee emp,后跟BindingResults。但我
@NotNull
public class Employee {
@NotNull
private String name;
//other fields and getters/setters
}
但我没有控制器。我只想在调用此方法(此方法位于Spring组件的类中)或手动验证时调用Employee
模型上的验证
使用控制器时,我可以使用注释处理程序方法,该方法带有@Valid Employee emp
,后跟BindingResults
。但我没有控制器
或者在某些场景中,我可以实现Validator
接口,然后使用BeanPropertyBindingResult
和ValidationUtils.invokeValidator
的组合。但是,在这种情况下,除非我在验证器
实现中为其添加验证,否则不会调用modelEmployee
上的@NotNull
还有其他方法吗?找到通过在方法中使用此方法发布的解决方案:
javax.validation.Validator javaxValidator = javax.validation.Validation.buildDefaultValidatorFactory().getValidator();
org.springframework.validation.beanvalidation.SpringValidatorAdapter validator = new org.springframework.validation.beanvalidation.SpringValidatorAdapter(javaxValidator);
org.springframework.validation.Errors errors = new org.springframework.validation.BeanPropertyBindingResult.BeanPropertyBindingResult(objectThatNeedsToBeValidated, objectThatNeedsToBeValidated.getClass().getName());
validator.validate(objectThatNeedsToBeValidated, errors);
编辑:找到通过在方法中使用此发布的解决方案:
javax.validation.Validator javaxValidator = javax.validation.Validation.buildDefaultValidatorFactory().getValidator();
org.springframework.validation.beanvalidation.SpringValidatorAdapter validator = new org.springframework.validation.beanvalidation.SpringValidatorAdapter(javaxValidator);
org.springframework.validation.Errors errors = new org.springframework.validation.BeanPropertyBindingResult.BeanPropertyBindingResult(objectThatNeedsToBeValidated, objectThatNeedsToBeValidated.getClass().getName());
validator.validate(objectThatNeedsToBeValidated, errors);
编辑: