// org.springframework.validation.SmartValidator - implemented by // LocalValidatorFactoryBean, which is funny as it is not a FactoryBean per se (just saying) @Autowired SmartValidator validator; public String saveAccount(@ModelAttribute Account account, BindingResult result) { // ... custom logic validator.validate(account, result, Account.Step1.class); if (result.hasErrors()) { // ... on binding or validation errors } else { // ... on no errors } return ""; }
if (validator instanceof SmartValidator) { try { ((SmartValidator) validator).validateValue(targetType, fieldName, value, binder.getBindingResult(), validationHints);
((SmartValidator) validator).validate(target, errors, validationHints);
if (validator instanceof SmartValidator) { try { ((SmartValidator) validator).validateValue(targetType, fieldName, value, binder.getBindingResult(), validationHints);
/** * Invoke the specified Validators, if any, with the given validation hints. * <p>Note: Validation hints may get ignored by the actual target Validator. * @param validationHints one or more hint objects to be passed to a {@link SmartValidator} * @since 3.1 * @see #setValidator(Validator) * @see SmartValidator#validate(Object, Errors, Object...) */ public void validate(Object... validationHints) { Object target = getTarget(); Assert.state(target != null, "No target to validate"); BindingResult bindingResult = getBindingResult(); // Call each validator with the same binding result for (Validator validator : getValidators()) { if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) { ((SmartValidator) validator).validate(target, bindingResult, validationHints); } else if (validator != null) { validator.validate(target, bindingResult); } } }
if (validator instanceof SmartValidator) { try { ((SmartValidator) validator).validateValue(targetType, fieldName, value, binder.getBindingResult(), validationHints);
((SmartValidator) validator).validate(target, errors, validationHints);
/** * Invoke the specified Validators, if any, with the given validation hints. * <p>Note: Validation hints may get ignored by the actual target Validator. * @param validationHints one or more hint objects to be passed to a {@link SmartValidator} * @since 3.1 * @see #setValidator(Validator) * @see SmartValidator#validate(Object, Errors, Object...) */ public void validate(Object... validationHints) { Object target = getTarget(); Assert.state(target != null, "No target to validate"); BindingResult bindingResult = getBindingResult(); // Call each validator with the same binding result for (Validator validator : getValidators()) { if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) { ((SmartValidator) validator).validate(target, bindingResult, validationHints); } else if (validator != null) { validator.validate(target, bindingResult); } } }
new BeanPropertyBindingResult(target, getParameterName(parameter)); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
((SmartValidator) springValidator).validate(model, errors, this.validationHints);
new BeanPropertyBindingResult(target, getParameterName(parameter)); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
private SmartValidator validator; private RentalBusinessService rentalBusinessService; @POST @Override @Consumes(MediaType.APPLICATION_JSON) public Rental createRental(Rental rental) { Errors errors = new BeanPropertyBindingResult(rental, "rental"); validator.validate(rental, errors, CreateValidationGroup.class); if (errors.hasErrors()) { //dostuff }
((SmartValidator) validator).validate(target, errors, validationHints);
public void validate(Object obj, Errors errors, Object... hints) { super.validateEditableParameters(errors); // If editable validation is OK, delegate to inner validator if (!errors.hasErrors() && this.innerValidator != null) { if (this.innerValidator instanceof SmartValidator) { ((SmartValidator) this.innerValidator).validate(obj, errors, hints); } else { this.innerValidator.validate(obj, errors); } } }
/** * Invoke the specified Validators, if any. * @see #setValidator(Validator) * @see #getBindingResult() */ public void validate() { Object target = getTarget(); Assert.state(target != null, "No target to validate"); BindingResult bindingResult = getBindingResult(); // Call each validator with the same binding result for (Validator validator : getValidators()) { validator.validate(target, bindingResult); } }
((SmartValidator) springValidator).validate(model, errors, this.validationHints);
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
new BeanPropertyBindingResult(target, getParameterName(parameter)); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
new BeanPropertyBindingResult(target, getParameterName(parameter)); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints);