public class CustomBindingErrorProcessor implements DefaultBindingErrorProcessor { public void processMissingFieldError(String missingField, BindException errors) { super.processMissingFieldError(missingField, errors); } public void processPropertyAccessException(PropertyAccessException accessException, BindException errors) { if(accessException.getCause() instanceof IllegalArgumentException) errors.rejectValue(accessException.getPropertyChangeEvent().getPropertyName(), "<SOME_SPECIFIC_CODE_IF_YOU_WANT>", accessException.getCause().getMessage()); else defaultSpringBindingErrorProcessor.processPropertyAccessException(accessException, errors); } }
public class CustomBindingErrorProcessor extends DefaultBindingErrorProcessor { public void processPropertyAccessException(PropertyAccessException accessException, BindingResult bindingResult) { if(accessException.getCause() instanceof IllegalArgumentException){ String fieldName = accessException.getPropertyChangeEvent().getPropertyName(); String exceptionError = accessException.getCause().getMessage(); FieldError fieldError = new FieldError(fieldName, "BINDING_ERROR", fieldName + ": " + exceptionError); bindingResult.addError(fieldError); }else{ super.processPropertyAccessException(accessException, bindingResult); } } }
final Respond respond = new StringBuilderRespond(new Object()); Throwable cause = pae.getCause();
final Respond respond = new StringBuilderRespond(new Object()); Throwable cause = pae.getCause();
final Respond respond = new StringBuilderRespond(new Object()); Throwable cause = pae.getCause();