使用 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: 自带校验规则,可校验邮箱

image-20211107154802167


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,这是在后端个人制定的规则

image-20211107160749476

posted @ 2021-11-07 16:13  yangruomao  阅读(55)  评论(0编辑  收藏  举报