Spring MVC 中的输入验证 Vlidator

在 Spring MVC 中有两种方式可以验证输入:1. Spring 自带的验证框架;2. 利用 JSR 303 实现,即 Java Specification Requests

Converter 和 Formatter 作用于 field 级,在 MVC 应用程序中,能够 将 String 转换或格式化成另一种 Java 类型,如 java.util.Date。

验证器作用于 object 级,决定某一个对象中的所有 field 是否均是有效的,以及是否遵循某些规则。

如果一个程序中即使用了 Formatter,又有 Validator(验证器),则其事件顺序是:在调用 Controller 期间,将会有一个或者多个 Formatter 试图将输入字符串转换成 domain 对象中的 field 值,一旦格式化成功,验证器就会介入。

Spring 验证器

为了创建 Spring 验证器,要实现 org.springframework.validation.Validator 接口。该接口有 supports 和 validate 两个方法。如果验证器可以处理指定的 Class,supports 方法将返回 true,validate 方法会验证目标对象,并将验证错误填入 Errors 对象。

Errors 对象时 org.springframework.validation.Errors 接口的一个实例。Errors 对象中包含了一系列 FieldError 和 ObjectError 对象。

package org.springframework.validation;
public interface Validator {
    public abstract boolean supports (Class<?> clazz);
    public abstract void validate (Object target, Errors errros);
}

工具类 ValidationUtils

org.springframework.validation.ValidationUtils 类是一个工具类,有助于编写 Spring 验证器。

JSR 303 验证

JSR 303 是正式的 Java 规范,建议使用。

猜你喜欢

转载自www.cnblogs.com/0820LL/p/10051746.html