实现Java后端数据校验

现在的项目在前后端分离的情况下,不仅要做前端数据校验,同时后端也需要实现。

常用的注解:

Valid

递归的对关联的对象进行校验

AssertFalse

用于boolean字段,该字段的值只能为false

AssertTrue

用于boolean字段,该字段只能为true

DecimalMax(value)

被注释的元素必须是一个数字,只能大于或等于该值

DecimalMin(value)

被注释的元素必须是一个数字,只能小于或等于该值

Digits(integer,fraction)

检查是否是一种数字的(整数,小数)的位数

Future

检查该字段的日期是否是属于将来的日期

FutureOrPresent

判断日期是否是将来或现在日期

Past

检查该字段的日期是在过去

PastOrPresent

判断日期是否是过去或现在日期

Max(value)

该字段的值只能小于或等于该值

Min(value)

该字段的值只能大于或等于该值

Negative

判断负数

NegativeOrZero

判断负数或0

Positive

判断正数

PositiveOrZero

判断正数或0

NotNull

不能为null

Null

必须为 null

Pattern(value)

被注释的元素必须符合指定的正则表达式

Size(max, min)

检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等

Length(max, min)

判断字符串长度

CreditCardNumber

被注释的字符串必须通过Luhn校验算法,银行卡,信用卡等号码一般都用Luhn计算合法性

Email

被注释的元素必须是电子邮箱地址

Length(min=, max=)

被注释的字符串的大小必须在指定的范围内

NotBlank

只能用于字符串不为null,并且字符串trim()以后length要大于0

NotEmpty

集合对象的元素不为0,即集合不为空,也可以用于字符串不为null

Range(min=, max=)

被注释的元素必须在合适的范围内

SafeHtml

classpath中要有jsoup包

ScriptAssert

要有Java Scripting API 即JSR 223("Scripting for the JavaTMPlatform")的实现

URL(protocol=,host=,port=,regexp=,flags=)

被注释的字符串必须是一个有效的url

依赖支持:

  <!--服务器数据校验-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

操作:

校验使用的注解方法数据称存储对象属性上

public class StudentBean { 
   private int stuID;

//message:在当属性有页面传递过来时为空则输出message的内容
    @NotBlank(message = "学生姓名不能为空")
    private String stuName;
    @Max(value = 18, message = "老大不小的人读啥子书哦")
    @Min(value = 10, message = "小批娃儿读啥子书哦")
    private Integer stuAge;
    @Email(message = "邮箱格式为XXXXX@XX")
    private String stuEmail;
    @Pattern(regexp = "^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$",
            message = "电话格式不正确")
    private String stuTel;  
}

在控制器中需要对需要校验的对象参数进行注解

    @RequestMapping("/add")
    @ResponseBody         //需要校验的对象
    public String addStu(@Valid StudentBean studentBean,
                         BindingResult result) throws JsonProcessingException {
        System.out.println(studentBean);
        if (result.hasErrors()) {//判断result中是否有错误信息
            //如果有,取出错误信息转换为String的数据
            return new ObjectMapper().
                    writeValueAsString(result.getFieldErrors());
        }
        return "ok";
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值