spring之Validator &Error Messages& & BeanWrapper--Spring类型校验和错误处理
Spring 使用
Validator
接口来在 应用的每一层完成数据的验证。
Data binding(数据绑定),可以动态的注入数据,Spring使用
DataBinder
类。Validator和databinder组成了validation包。
BeanWrapper是一个Lowel的接口,一般不会用到。
Spring的DataBinder和BeanWrapper都使用
PropertyEditorSupport
的实现去解析和格式化属性值。
PropertyEditor和
PropertyEditorSupport都是javaBeans细节的一部分。
SPring 3 介绍了
core.convert
包去提供通用的类型转化
JSR-303和JSR Bean Validation
3.1 使用Validatior 接口进行校验
Validator
使用一个Error
对象来反馈失败的信息。
示例
下面的例子提供了对Person类的验证,通过使用
org.springframework.validation.Validator接口的两个方法。
- support(Class):验证,该Validator类是否支持对该示例的验证
- validate(Object, org.springframework.validation.Errors)
验证呗被给予的对象,错误时返回Errors对象。
示例中 ValidationUtils.rejectIfEmpty来验证String为非null。
类似一个装饰器模式,你可以在validator中包含validator来注入式的验证
invokerValidator注入式的调用
3.2 解决Error Messages
关于错误的输出和输出消息的绑定,可以选择使用MessageSource。当你调用ValidationUtils
的reject方法或者rejectV