使用 JSR303 校验
使用 JSR303 校验
防止用户修改前端代码造成的bug
本次示例:
校验用户输入信息,然后保存在数据库中
导入依赖
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.0.Final</version>
</dependency>
JavaBean 定义校验字段
- @Pattern : 自定义校验规则
- regexp: 正则表达式
- message: 信息,这里用作校验错误的提示信息
- @Email: 自带校验规则,可校验邮箱
Controller 类中使用校验
-
@Valid: 把参数标记为要校验的
-
BindingResult:存储了校验的结果
-
hasErrors():是否有错误
-
getFieldErrors():返回所有校验失败的字段bean
-
-
FieldError :存储一个字段的校验信息
- getField() :字段名
- getDefaultMessage() : 定义字段时的 message
前端中使用校验
在 Controller 类中已经将错误字段的信息映射为了 ("error", map)
,可以在前端利用 Ajax 读取出这些信息,并使用。
result.extend.error
即为上图中存储的 map 。
说明:如果 Controller 校验通过了,result.code=100, 失败了 result.code=200,这是在后端个人制定的规则