Spring 基于注解的验证有一个规范(bean 声明的 validation Api) , 一个规范的实现有很多(也就是说会有很多的人来做这个工作), 今天我们就用一下hibernate实现的方式:
1, 用人家肯定要下载相应的工具啦, 在Maven Repository 中搜索hibernate,找到Hibernate Validator Engine, 复制相应的gav坐标到maven的pom.xml配置文件即可.
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency> <!-- hibernate-验证器 -->
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.12.Final</version>
</dependency>
</dependencies>
2, 在hibernate官网中有---hibernate-Validator 的相应使用手册, 可以自学其他功能
3, 然后在Spring mvc的配置文件 app-servlet.xml 中
3.1 bean 声明对应的验证器:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
3.2 指明 验证方法都用上边声明的这个验证器
<mvc:annotation-driven validator="validator"></mvc:annotation-driven> <!-- 这样就不用自己写的了,用上边定义的验证器 ; 且所有的控制器都是用她 -->
4, 在需要验证的实体类中,注解相应的验证方式:
@Entity@Table(name="b_user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int uid;
//@NotEmpty(message="账号不能为null,且不能不填(但可以为空格)")
@NotBlank(message="账号不能为null,且不能不填(不可以全为空格)")
//@Size(min=4,message="账号最少为四位")
@Pattern(regexp="^\\w{4}$",message="账号最少为四位")
private String uname;
private String upass;
private String email;
}
5, 想要了解Spring 注解中 @NotNull@NotEmpty,@NotBlank,用法区别,以及自定义,可看 匹配文章:
https://blog.csdn.net/ld_secret/article/details/83863702