需添加jar包:
classmate-0.8. 不添加出现::
commons-logging-1. 和 jboss-logging-3.1. 日志相关jar包
hibernate-validator-5.2. 和 validation-api.1.1. 支持注解式校验
spring相关jar包
注:当使用hibernate-validator-4.3. 和 validation-api.1.0. 支持校验时,不导入,也可正常执行校验
当 和 版本不对应时,会报错。如导入:hibernate-validator-4.3. 和 validation-api.1.1.
例:
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="http:///2001/XMLSchema-instance"
xmlns:context="/schema/context"
xmlns:mvc="/schema/mvc"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-3.
/schema/context
/schema/context/spring-context-3.
/schema/mvc
/schema/mvc/spring-mvc-3.">
<!-- 启动注解支持 -->
<mvc:annotation-driven />
<!-- 扫描指定包,并注册相应组件 -->
<context:component-scan base-package="" />
</beans>
验证实体类:
package ;
import ;
import ;
public class People {
//name字段不为空,且长度在3-8之间
@NotEmpty
@Size(min=3,max=8)
private String name;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
}
控制类:
package ;
import ;
import ;
import ;
import ;
import ;
import ;
@Controller
public class FirstController {
@RequestMapping("/addPeople")
public @ResponseBody String addPeople(@Valid People p,BindingResult result)
{
("people's name:" + ());
if(())
{
return "0";
}
return "1";
}
}
@Valid注解所标注的就是要检验的参数,BindingResult是检验结果。
BindingResult必须紧跟在验证参数之后,即@Valid修饰参数后。否则报错
测试:
请求地址:http://localhost:8080/Test/addPeople?name=1234
结果:页面显示1,控制台打印:people's name:1234 参数正确
请求地址:http://localhost:8080/Test/addPeople?name=1
结果:页面显示0,控制台打印:people's name:1 验证: 参数长度不为3-8
请求地址:http://localhost:8080/Test/addPeople?name=
结果:页面显示0,控制台打印:people's name: 验证:参数值为空
请求地址:http://localhost:8080/Test/addPeople
结果:页面显示0,控制台打印:people's name: null 验证:参数不存在