使用校验的对象前面要加上@Valid
注解
BindingResult 参数校验的结果会存储在此对象中,可以根据属性判断是否校验通过,校验不通过可以将错误信息打印出来。
注解 | 应用目标 | 运行时检查 | Hibernate 元数据影响 |
---|---|---|---|
@Length(min=, max=) | 属性(String) | 检查字符串长度是否符合范围 | 列长度会被设到最大值 |
@Max(value=) | 属性(以 numeric 或者 string 类型来表示一个数字) | 检查值是否小于或等于最大值 | 对列增加一个检查约束 |
@Min(value=) | 属性(以 numeric 或者 string 类型来表示一个数字) | 检查值是否大于或等于最小值 | 对列增加一个检查约束 |
@NotNull | 属性 | 检查值是否非空(not null) | 列不为空 |
@Past | 属性(date 或 calendar) | 检查日期是否是过去时 | 对列增加一个检查约束 |
@Future | 属性(date 或 calendar) | 检查日期是否是将来时 | 无 |
@Pattern(regex=“regexp”, flag=) | 属性(String) | 检查属性是否与给定匹配标志的正则表达式相匹配(见 java.util.regex.Pattern ) | 无 |
@Range(min=, max=) | 属性(以 numeric 或者 string 类型来表示一个数字) | 检查值是否在最小和最大值之间(包括临界值) | 对列增加一个检查约束 |
@Size(min=, max=) | 属性(array,collection,map) | 检查元素大小是否在最小和最大值之间(包括临界值) | 无 |
@AssertFalse | 属性 | 检查方法的演算结果是否为 false(对以代码方式而不是注解表示的约束很有用) | 无 |
@AssertTrue | 属性 | 检查方法的演算结果是否为 true(对以代码方式而不是注解表示的约束很有用) | 无 |
@Valid | 属性(object) | 对关联对象递归进行验证。如果对象是集合或数组,就递归地验证其元素;如果对象是 Map,则递归验证其值元素 | 无 |
属性(String) | 检查字符串是否符合有效的 email 地址规范 | 无 |
创建是实体类 其中,message=“密码不能为空”,为自定义返回的错误信息。
编写controller类
测试
返回结果