List of usage examples for org.springframework.validation DataBinder setConversionService
public void setConversionService(@Nullable ConversionService conversionService)
From source file:cherry.foundation.type.format.CustomNumberFormatTest.java
private String parseAndPrint(String name, String value) throws BindException { Map<String, String> paramMap = new HashMap<>(); paramMap.put(name, value);//from w w w . ja v a2s .c o m Form form = new Form(); DataBinder binder = new DataBinder(form, "target"); binder.setConversionService(conversionService); binder.bind(new MutablePropertyValues(paramMap)); BindingResult binding = BindingResultUtils.getBindingResult(binder.close(), "target"); return (String) binding.getFieldValue(name); }
From source file:org.agatom.springatom.cmp.wizards.core.AbstractWizardProcessor.java
/** * Creates {@link org.springframework.validation.DataBinder} without paying attention on {@link org.springframework.validation.DataBinder#setAllowedFields(String...)} or * {@link org.springframework.validation.DataBinder#setRequiredFields(String...)} * * @param contextObject context object * @param contextObjectName context object name * * @return the binder//from w w w . j a v a2 s .c om */ private DataBinder createBinder(final Object contextObject, final String contextObjectName) { LOGGER.debug(String.format("createGlobalBinder(contextObject=%s,contextObjectName=%s)", contextObject, contextObjectName)); Assert.notNull(contextObject, "contextObject must not be null"); Assert.notNull(contextObjectName, "contextObjectName must not be null"); final DataBinder binder = new WizardDataBinder(contextObject, contextObjectName); binder.setIgnoreUnknownFields(true); binder.setAutoGrowNestedPaths(true); binder.setConversionService(this.conversionService); binder.setValidator(this.delegatedValidator); binder.setMessageCodesResolver(new DefaultMessageCodesResolver()); return binder; }
From source file:utils.play.BugWorkaroundForm.java
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override/*ww w . j a v a 2 s . c om*/
public Form<T> bind(final Map<String, String> data, final String... allowedFields) {
DataBinder dataBinder = null;
Map<String, String> objectData = data;
if (rootName == null) {
dataBinder = new DataBinder(blankInstance());
} else {
dataBinder = new DataBinder(blankInstance(), rootName);
objectData = new HashMap<String, String>();
for (String key : data.keySet()) {
if (key.startsWith(rootName + ".")) {
objectData.put(key.substring(rootName.length() + 1), data.get(key));
}
}
}
if (allowedFields.length > 0) {
dataBinder.setAllowedFields(allowedFields);
}
SpringValidatorAdapter validator = new SpringValidatorAdapter(Validation.getValidator());
dataBinder.setValidator(validator);
dataBinder.setConversionService(play.data.format.Formatters.conversion);
dataBinder.setAutoGrowNestedPaths(true);
dataBinder.bind(new MutablePropertyValues(objectData));
Set<ConstraintViolation<Object>> validationErrors = validator.validate(dataBinder.getTarget());
BindingResult result = dataBinder.getBindingResult();
for (ConstraintViolation<Object> violation : validationErrors) {
String field = violation.getPropertyPath().toString();
FieldError fieldError = result.getFieldError(field);
if (fieldError == null || !fieldError.isBindingFailure()) {
try {
result.rejectValue(field,
violation.getConstraintDescriptor().getAnnotation().annotationType().getSimpleName(),
getArgumentsForConstraint(result.getObjectName(), field,
violation.getConstraintDescriptor()),
violation.getMessage());
} catch (NotReadablePropertyException ex) {
throw new IllegalStateException("JSR-303 validated property '" + field
+ "' does not have a corresponding accessor for data binding - "
+ "check your DataBinder's configuration (bean property versus direct field access)",
ex);
}
}
}
if (result.hasErrors()) {
Map<String, List<ValidationError>> errors = new HashMap<String, List<ValidationError>>();
for (FieldError error : result.getFieldErrors()) {
String key = error.getObjectName() + "." + error.getField();
System.out.println("Error field:" + key);
if (key.startsWith("target.") && rootName == null) {
key = key.substring(7);
}
List<Object> arguments = new ArrayList<>();
for (Object arg : error.getArguments()) {
if (!(arg instanceof org.springframework.context.support.DefaultMessageSourceResolvable)) {
arguments.add(arg);
}
}
if (!errors.containsKey(key)) {
errors.put(key, new ArrayList<ValidationError>());
}
errors.get(key).add(new ValidationError(key,
error.isBindingFailure() ? "error.invalid" : error.getDefaultMessage(), arguments));
}
return new Form(rootName, backedType, data, errors, F.Option.None());
} else {
Object globalError = null;
if (result.getTarget() != null) {
try {
java.lang.reflect.Method v = result.getTarget().getClass().getMethod("validate");
globalError = v.invoke(result.getTarget());
} catch (NoSuchMethodException e) {
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
if (globalError != null) {
Map<String, List<ValidationError>> errors = new HashMap<String, List<ValidationError>>();
if (globalError instanceof String) {
errors.put("", new ArrayList<ValidationError>());
errors.get("").add(new ValidationError("", (String) globalError, new ArrayList()));
} else if (globalError instanceof List) {
for (ValidationError error : (List<ValidationError>) globalError) {
List<ValidationError> errorsForKey = errors.get(error.key());
if (errorsForKey == null) {
errors.put(error.key(), errorsForKey = new ArrayList<ValidationError>());
}
errorsForKey.add(error);
}
} else if (globalError instanceof Map) {
errors = (Map<String, List<ValidationError>>) globalError;
}
if (result.getTarget() != null) {
return new Form(rootName, backedType, data, errors, F.Option.Some((T) result.getTarget()));
} else {
return new Form(rootName, backedType, data, errors, F.Option.None());
}
}
return new Form(rootName, backedType, new HashMap<String, String>(data),
new HashMap<String, List<ValidationError>>(errors), F.Option.Some((T) result.getTarget()));
}
}
From source file:org.springframework.springfaces.mvc.bind.ReverseDataBinderTest.java
/** * Setup the databinder with a customer date editor and a conversion service * @param dataBinder/*from ww w . j a va2 s . co m*/ */ private void initBinder(DataBinder dataBinder) { DateFormat df = new SimpleDateFormat("yyyy/dd/MM"); df.setLenient(false); dataBinder.registerCustomEditor(Date.class, new CustomDateEditor(df, false)); dataBinder.setConversionService(this.conversionService); }