类 SpringValidatorAdapter
- java.lang.Object
- org.springframework.validation.beanvalidation.SpringValidatorAdapter
- 所有已实现的接口:
Validator
,SmartValidator
,Validator
public class SpringValidatorAdapter extends Object implements SmartValidator, Validator
Adapter that takes a JSR-303javax.validator.Validator
and exposes it as a SpringValidator
while also exposing the original JSR-303 Validator interface itself.Can be used as a programmatic wrapper. Also serves as base class for
CustomValidatorBean
andLocalValidatorFactoryBean
.Note that Bean Validation 1.1's
#forExecutables
method isn't supported on this adapter: We do not expect that method to be called by application code; considerMethodValidationInterceptor
instead. If you really need programmatic#forExecutables
access, call#unwrap(Validator.class)
which will provide the nativeValidator
object with#forExecutables
support.- 从以下版本开始:
- 3.0
- 作者:
- Juergen Hoeller
构造器概要
构造器 构造器 说明 SpringValidatorAdapter(Validator targetValidator)
Create a new SpringValidatorAdapter for the given JSR-303 Validator.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected String
determineErrorCode(ConstraintDescriptor<?> descriptor)
Determine a Spring-reported error code for the given constraint descriptor.protected String
determineField(ConstraintViolation<Object> violation)
Determine a field for the given constraint violation.protected Object[]
getArgumentsForConstraint(String objectName, String field, ConstraintDescriptor<?> descriptor)
Return FieldError arguments for a validation error on the given field.BeanDescriptor
getConstraintsForClass(Class<?> clazz)
protected Object
getRejectedValue(String field, ConstraintViolation<Object> violation, BindingResult bindingResult)
Extract the rejected value behind the given constraint violation, for exposure through the Spring errors representation.protected MessageSourceResolvable
getResolvableField(String objectName, String field)
Build a resolvable wrapper for the specified field, allowing to resolve the field's name in aMessageSource
.protected void
processConstraintViolations(Set<ConstraintViolation<Object>> violations, Errors errors)
Process the given JSR-303 ConstraintViolations, adding corresponding errors to the provided SpringErrors
object.boolean
supports(Class<?> clazz)
<T> T
unwrap(Class<T> type)
void
validate(Object target, Errors errors)
Validate the suppliedtarget
object, which must be of aClass
for which theValidator.supports(Class)
method typically has (or would) returntrue
.void
validate(Object target, Errors errors, Object... validationHints)
Validate the suppliedtarget
object, which must be of a type ofClass
for which theValidator.supports(Class)
method typically returnstrue
.<T> Set<ConstraintViolation<T>>
validate(T object, Class<?>... groups)
<T> Set<ConstraintViolation<T>>
validateProperty(T object, String propertyName, Class<?>... groups)
<T> Set<ConstraintViolation<T>>
validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups)
构造器详细资料
SpringValidatorAdapter
public SpringValidatorAdapter(Validator targetValidator)
Create a new SpringValidatorAdapter for the given JSR-303 Validator.- 参数:
targetValidator
- the JSR-303 Validator to wrap
方法详细资料
validate
public void validate(Object target, Errors errors)
从接口复制的说明:Validator
Validate the suppliedtarget
object, which must be of aClass
for which theValidator.supports(Class)
method typically has (or would) returntrue
.The supplied
errors
instance can be used to report any resulting validation errors.- 指定者:
validate
在接口中Validator
- 参数:
target
- the object that is to be validated (can benull
)errors
- contextual state about the validation process (nevernull
)- 另请参阅:
ValidationUtils
validate
public void validate(Object target, Errors errors, Object... validationHints)
从接口复制的说明:SmartValidator
Validate the suppliedtarget
object, which must be of a type ofClass
for which theValidator.supports(Class)
method typically returnstrue
.The supplied
errors
instance can be used to report any resulting validation errors.This variant of
validate()
supports validation hints, such as validation groups against a JSR-303 provider (in which case, the provided hint objects need to be annotation arguments of typeClass
).Note: Validation hints may get ignored by the actual target
Validator
, in which case this method should behave just like its regularValidator.validate(Object, Errors)
sibling.- 指定者:
validate
在接口中SmartValidator
- 参数:
target
- the object that is to be validated (can benull
)errors
- contextual state about the validation process (nevernull
)validationHints
- one or more hint objects to be passed to the validation engine- 另请参阅:
ValidationUtils
processConstraintViolations
protected void processConstraintViolations(Set<ConstraintViolation<Object>> violations, Errors errors)
Process the given JSR-303 ConstraintViolations, adding corresponding errors to the provided SpringErrors
object.- 参数:
violations
- the JSR-303 ConstraintViolation resultserrors
- the Spring errors object to register to
determineField
protected String determineField(ConstraintViolation<Object> violation)
Determine a field for the given constraint violation.The default implementation returns the stringified property path.
- 参数:
violation
- the current JSR-303 ConstraintViolation- 返回:
- the Spring-reported field (for use with
Errors
) - 从以下版本开始:
- 4.2
- 另请参阅:
ConstraintViolation.getPropertyPath()
,FieldError.getField()
determineErrorCode
protected String determineErrorCode(ConstraintDescriptor<?> descriptor)
Determine a Spring-reported error code for the given constraint descriptor.The default implementation returns the simple class name of the descriptor's annotation type. Note that the configured
MessageCodesResolver
will automatically generate error code variations which include the object name and the field name.- 参数:
descriptor
- the JSR-303 ConstraintDescriptor for the current violation- 返回:
- a corresponding error code (for use with
Errors
) - 从以下版本开始:
- 4.2
- 另请参阅:
ConstraintDescriptor.getAnnotation()
,MessageCodesResolver
getArgumentsForConstraint
protected Object[] getArgumentsForConstraint(String objectName, String field, ConstraintDescriptor<?> descriptor)
Return FieldError arguments for a validation error on the given field. Invoked for each violated constraint.The default implementation returns a first argument indicating the field name (see
getResolvableField(java.lang.String, java.lang.String)
). Afterwards, it adds all actual constraint annotation attributes (i.e. excluding "message", "groups" and "payload") in alphabetical order of their attribute names.Can be overridden to e.g. add further attributes from the constraint descriptor.
- 参数:
objectName
- the name of the target objectfield
- the field that caused the binding errordescriptor
- the JSR-303 constraint descriptor- 返回:
- the Object array that represents the FieldError arguments
- 另请参阅:
DefaultMessageSourceResolvable.getArguments()
,DefaultMessageSourceResolvable
,DefaultBindingErrorProcessor.getArgumentsForBindError(java.lang.String, java.lang.String)
getResolvableField
protected MessageSourceResolvable getResolvableField(String objectName, String field)
Build a resolvable wrapper for the specified field, allowing to resolve the field's name in aMessageSource
.The default implementation returns a first argument indicating the field: of type
DefaultMessageSourceResolvable
, with "objectName.field" and "field" as codes, and with the plain field name as default message.- 参数:
objectName
- the name of the target objectfield
- the field that caused the binding error- 返回:
- a corresponding
MessageSourceResolvable
for the specified field - 从以下版本开始:
- 4.3
getRejectedValue
protected Object getRejectedValue(String field, ConstraintViolation<Object> violation, BindingResult bindingResult)
Extract the rejected value behind the given constraint violation, for exposure through the Spring errors representation.- 参数:
field
- the field that caused the binding errorviolation
- the corresponding JSR-303 ConstraintViolationbindingResult
- a Spring BindingResult for the backing object which contains the current field's value- 返回:
- the invalid value to expose as part of the field error
- 从以下版本开始:
- 4.2
- 另请参阅:
ConstraintViolation.getInvalidValue()
,FieldError.getRejectedValue()
validate
public <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups)
validateProperty
public <T> Set<ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups)
- 指定者:
validateProperty
在接口中Validator
validateValue
public <T> Set<ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups)
- 指定者:
validateValue
在接口中Validator
getConstraintsForClass
public BeanDescriptor getConstraintsForClass(Class<?> clazz)
- 指定者:
getConstraintsForClass
在接口中Validator