关于Spring4中validation的使用

今天按照《manning spring in action 4th edition》的5.4.2部分进行表单的validation测试,按照书上的说法,spring4可以实现validation是因为对 JSR 303 - Bean Validation规范进行了支持。使用Java Validation API提供的annotation,给相关属性值进行注解就能达到约束效果,相关注解都定义在javax.validation.constraints里。


一开始我做的时候,只导入了(如果不用maven,直接把包放到WEB-INF/lib下):

友情链接:http://mvnrepository.com/

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>

然而,并不能达到数据验证的效果,也不报错.......后来发现书中有一段话,说道:No extra configuration is required to make Java Validation work in Spring MVC. You just need to make sure an implementation of the Java API, such as Hibernate Validator, is in the project’s classpath..........在Spring MVC中启用Java Validation并不需要其他配置,只需要确认有一个Java API的实现(例如Hibernate Validator)放在工程的classpath。


所以需要找一份Hibernate Validator的实现:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.3.Final</version>
</dependency>
当我加入后,出现一大堆错误.....这时候我的内心是喜悦的.....因为至少有错误发生....所以对待一个人最残忍的是什么....是沉默....你打我骂我也好过不理我.....


根据错误的大致意思...应该是缺少依赖包之类的,陆陆续续加了以下两个包:

<dependency>
	<groupId>org.jboss.logging</groupId>
	<artifactId>jboss-logging</artifactId>
	<version>3.1.4.GA</version>
</dependency>
<dependency>
    <groupId>com.fasterxml</groupId>
    <artifactId>classmate</artifactId>
    <version>1.3.1</version>
</dependency>

好了,这下就没问题了,不过还有一点值得交代的是@NotNull、@NotEmpty、@NotBlank的区别:

这里有篇帖子说得很好



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章