数据验证在实际应用中非常广泛,例如我们注册个用户信息,填写用户名,提示至少6位......
数据验证是用户输入的数据值进行的业务逻辑有效性验证,而非数据类型的验证,数据类型的验证是否成功是由类型转换器完成的。
数据验证一般分前端验证与服务端验证两种,前端验证一般通过AJAX完成,而服务端验证是通过代码完成验证的。
对于一般性验证,前端就可以,但如果安全性较高,一般前端后端都要有,但绝不会出现只要后端 验证而不要前端验证的情况。
SpringMVC支持JRS303提案,该提案是对象验证提案,验证的是一个对象,而不是一个数据。
该规范的实现者很多,较著名的是Hibernate validator。
一、第一个程序的实现:
需求:表单中姓名、成绩、手机号,要求姓名非空且长度为6-12个字符;成绩,百分制;手机号,非空且符合手机号格式。
1、根据需求设计表单。
2、创建个bean(因为该规范验证的是对象)
3、导入相关jar包:
4、定义验证规则(写bean里):
5、修改处理器:
判断是否验证通过有四种方式:
rs.getErrorCount()>0(如果大于0,则表示验证没通过)
rs.getErrorCount();
List<ObjectError> allErrors=rs.getAllErrors();
int size=allErrors.size();
rs.hasErrors();(这个返回是个布尔值)
执行getDefaultMessage是有条件的,就是调用者必须不能为空,为空的话就会报空指针异常,为此我们在上面进行了判断。
6、注册验证器:
二、验证失败信息显示与数据回显:
处理器方法代码在上面已经显示。