SpringBoot数据校验( Hibernate-validator )

Hibernate-validator

SpringBoot中的数据校验预先配置好的,不需要手动添加
默认使用的是r校验框架
在这里插入图片描述

对实体对象数据校验步骤

1 修改实体类添加校验规则

/**
 * @NotNull 对基本数据类型的对象类型做非空校验
 * @NotBlank 对字符串类型做非空校验
 * @NotEmpty 对集合类型做非空校验
 */
public class User {

    @NotBlank(message = "账号不能为空")
    private String account;
    @NotBlank(message = "密码不能为空")
    @Size(min=2,max=10,message = "密码长度必须是2到10个字符")
    private String password;
    @NotBlank(message = "为了接收信息,邮箱不能为空")
    @Email(message = "邮箱格式不正确")
    private String email;

2 在Controller中开启校验规则

@Controller
@RequestMapping("/user")
public class UserController {

    /**
     * 添加用户
     */
    @RequestMapping("/addUser")
    public String addUser(@Validated User user, BindingResult result){
        if(result.hasErrors()){
            //-以下实际不需要
            /*List<ObjectError> list = result.getAllErrors();
            for(ObjectError err:list){
                FieldError fieldError = (FieldError) err;//FieldError为ObjectError子类
                String fieldName = fieldError.getField();
                String msg = fieldError.getDefaultMessage();
                System.out.println(fieldName+"\t"+msg);
            }*/
            return "addUser";
        }
        System.out.println(user);
        return "ok";
    }

}

对应的html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>SpringBoot-Validate</title>
</head>
<body>
    <form th:action="@{/user/addUser}" method="post">
        <p>Name <input type="text" name="name"/></p>
        <p>Sex <input type="text" name="sex"/></p>
        <p>Age<input type="text" name="age"/></p>
        <input type="submit" value="ok">
    </form>
</body>
</html>

常用校验规则

JSR提供的校验注解:         
@Null   被注释的元素必须为 null    
@NotNull    被注释的元素必须不为 null    
@AssertTrue     被注释的元素必须为 true    
@AssertFalse    被注释的元素必须为 false    
@Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@Size(max=, min=)   被注释的元素的大小必须在指定的范围内    
@Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内    
@Past   被注释的元素必须是一个过去的日期    
@Future     被注释的元素必须是一个将来的日期    
@Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式    


Hibernate Validator提供的校验注解:  
@NotBlank(message =)   验证字符串非null,且长度必须大于0    
@Email  被注释的元素必须是电子邮箱地址    
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
@NotEmpty   被注释的字符串的必须非空    
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值