@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
@Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); }
/** * Binds data to this form - that is, handles form submission. * * @param lang used for validators and formatters during binding and is part of {@link ValidationPayload}. * Later also used for formatting when retrieving a field (via {@link #field(String)} or {@link #apply(String)}) * and for translations in {@link #errorsAsJson()}. For these methods the lang can be change via {@link #withLang(Lang)}. * @param attrs will be passed to validators via {@link ValidationPayload} * @param data data to submit * @param allowedFields the fields that should be bound to the form, all fields if not specified. * @return a copy of this form filled with the new data */ @SuppressWarnings("unchecked") public Form<T> bind(Lang lang, TypedMap attrs, Map<String,String> data, Map<String, Http.MultipartFormData.FilePart<?>> files, String... allowedFields) { final DataBinder dataBinder = dataBinder(allowedFields); final Map<String, Object> objectDataFinal = getObjectData(data, files); final Set<ConstraintViolation<Object>> validationErrors = runValidation(lang, attrs, dataBinder, objectDataFinal); final BindingResult result = dataBinder.getBindingResult(); validationErrors.forEach(violation -> addConstraintViolationToBindingResult(violation, result)); boolean hasAnyError = result.hasErrors() || result.getGlobalErrorCount() > 0; if (hasAnyError) { final List<ValidationError> errors = getFieldErrorsAsValidationErrors(lang, result); final List<ValidationError> globalErrors = globalErrorsAsValidationErrors(result); errors.addAll(globalErrors); return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); } return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); }
/** * Binds data to this form - that is, handles form submission. * * @param lang used for validators and formatters during binding and is part of {@link ValidationPayload}. * Later also used for formatting when retrieving a field (via {@link #field(String)} or {@link #apply(String)}) * and for translations in {@link #errorsAsJson()}. For these methods the lang can be change via {@link #withLang(Lang)}. * @param attrs will be passed to validators via {@link ValidationPayload} * @param data data to submit * @param allowedFields the fields that should be bound to the form, all fields if not specified. * @return a copy of this form filled with the new data */ @SuppressWarnings("unchecked") public Form<T> bind(Lang lang, TypedMap attrs, Map<String,String> data, Map<String, Http.MultipartFormData.FilePart<?>> files, String... allowedFields) { final DataBinder dataBinder = dataBinder(allowedFields); final Map<String, Object> objectDataFinal = getObjectData(data, files); final Set<ConstraintViolation<Object>> validationErrors = runValidation(lang, attrs, dataBinder, objectDataFinal); final BindingResult result = dataBinder.getBindingResult(); validationErrors.forEach(violation -> addConstraintViolationToBindingResult(violation, result)); boolean hasAnyError = result.hasErrors() || result.getGlobalErrorCount() > 0; if (hasAnyError) { final List<ValidationError> errors = getFieldErrorsAsValidationErrors(lang, result); final List<ValidationError> globalErrors = globalErrorsAsValidationErrors(result); errors.addAll(globalErrors); return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); } return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); }
/** * Binds data to this form - that is, handles form submission. * * @param lang used for validators and formatters during binding and is part of {@link ValidationPayload}. * Later also used for formatting when retrieving a field (via {@link #field(String)} or {@link #apply(String)}) * and for translations in {@link #errorsAsJson()}. For these methods the lang can be change via {@link #withLang(Lang)}. * @param attrs will be passed to validators via {@link ValidationPayload} * @param data data to submit * @param allowedFields the fields that should be bound to the form, all fields if not specified. * @return a copy of this form filled with the new data */ @SuppressWarnings("unchecked") public Form<T> bind(Lang lang, TypedMap attrs, Map<String,String> data, Map<String, Http.MultipartFormData.FilePart<?>> files, String... allowedFields) { final DataBinder dataBinder = dataBinder(allowedFields); final Map<String, Object> objectDataFinal = getObjectData(data, files); final Set<ConstraintViolation<Object>> validationErrors = runValidation(lang, attrs, dataBinder, objectDataFinal); final BindingResult result = dataBinder.getBindingResult(); validationErrors.forEach(violation -> addConstraintViolationToBindingResult(violation, result)); boolean hasAnyError = result.hasErrors() || result.getGlobalErrorCount() > 0; if (hasAnyError) { final List<ValidationError> errors = getFieldErrorsAsValidationErrors(lang, result); final List<ValidationError> globalErrors = globalErrorsAsValidationErrors(result); errors.addAll(globalErrors); return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); } return new Form<>(rootName, backedType, data, files, errors, Optional.ofNullable((T)result.getTarget()), groups, messagesApi, formatters, this.validatorFactory, config, lang, directFieldAccess); }
if (result.hasErrors() || result.getGlobalErrorCount() > 0) { Map<String,List<ValidationError>> errors = new HashMap<String,List<ValidationError>>(); for (FieldError error: result.getFieldErrors()) {