server2008 做网站,网络科技有限公司照片,建设医院网站ppt,wordpress查看自己的评论#x1f345; 作者主页#xff1a;Java李杨勇 #x1f345; 简介#xff1a;Java领域优质创作者#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我#xff0c;都给你】 在日常开发中经常对参数进行校验、可以使用Validator#xff0c;一般… 作者主页Java李杨勇 简介Java领域优质创作者、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我都给你】 在日常开发中经常对参数进行校验、可以使用Validator一般情况下用来验证web前端页面传过来的对象数据属性 是否符合标准要求预期。
首先需要在需要校验的java实体类中对需要校验的对象属性添加相关注解说明 用户对象举例 package com.railway.modules.sys.entity;import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.railway.common.validator.group.AddGroup;
import com.railway.common.validator.group.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;/*** 系统用户** author lyy */
Data
TableName(sys_user)
public class SysUserEntity implements Serializable {private static final long serialVersionUID 1L;/*** 用户ID*/TableIdprivate Long userId;/*** 用户名*/NotBlank(message用户名不能为空, groups {AddGroup.class, UpdateGroup.class})private String username;/*** 密码*/NotBlank(message密码不能为空, groups AddGroup.class)private String password;/*** 盐*/private String salt;/*** 邮箱*/NotBlank(message邮箱不能为空, groups {AddGroup.class, UpdateGroup.class})Email(message邮箱格式不正确, groups {AddGroup.class, UpdateGroup.class})private String email;/*** 手机号*/private String mobile;/*** 状态 0禁用 1正常*/private Integer status;/*** 角色ID列表*/TableField(existfalse)private ListLong roleIdList;/*** 创建者ID*/private Long createUserId;private String roleName;private String position;/*** 创建时间*/private Date createTime;}注解参数说明 验证注解验证的数据类型说明AssertFalseBoolean,boolean验证注解的元素值是falseAssertTrueBoolean,boolean验证注解的元素值是trueNotNull任意类型验证注解的元素值不是nullNull任意类型验证注解的元素值是nullMin(value值)BigDecimalBigInteger, byte,short, int, long等任何Number或CharSequence存储的是数字子类型验证注解的元素值大于等于Min指定的value值Maxvalue值和Min要求一样验证注解的元素值小于等于Max指定的value值DecimalMin(value值)和Min要求一样验证注解的元素值大于等于 DecimalMin指定的value值DecimalMax(value值)和Min要求一样验证注解的元素值小于等于 DecimalMax指定的value值Digits(integer整数位数, fraction小数位数)和Min要求一样验证注解的元素值的整数位数和小数位数上限Size(min下限, max上限)字符串、Collection、Map、数组等验证注解的元素值的在min和max包含指定区间之内如字符长度、集合大小Pastjava.util.Date,java.util.Calendar;Joda Time类库的日期类型验证注解的元素值日期类型比当前时间早Future与Past要求一样验证注解的元素值日期类型比当前时间晚NotBlankCharSequence子类型验证注解的元素值不为空不为null、去除首位空格后长度为0不同于NotEmptyNotBlank只应用于字符串且在比较时会去除字符串的首位空格Length(min下限, max上限)CharSequence子类型验证注解的元素值长度在min和max区间内NotEmptyCharSequence子类型、Collection、Map、数组验证注解的元素值不为null且不为空字符串长度不为0、集合大小不为0Range(min最小值, max最大值)BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型验证注解的元素值在最小值和最大值之间Email(regexp正则表达式,flag标志的模式)CharSequence子类型如String验证注解的元素值是Email也可以通过regexp和flag指定自定义的email格式Pattern(regexp正则表达式,flag标志的模式)String任何CharSequence的子类型验证注解的元素值与指定的正则表达式匹配Valid任何非原子类型指定递归验证关联的对象如用户对象中有个地址对象属性如果想在验证用户对象时一起验证地址对象的话在地址对象上加Valid注解即可级联验证ValidatorUtils校验类 /*** hibernate-validator校验工具类** 参考文档http://docs.jboss.org/hibernate/validator/5.4/reference/en-US/html_single/** author admin*/
public class ValidatorUtils {private static Validator validator;static {validator Validation.buildDefaultValidatorFactory().getValidator();}/*** 校验对象* param object 待校验对象* param groups 待校验的组* throws RRException 校验不通过则报RRException异常*/public static void validateEntity(Object object, Class?... groups)throws RRException {SetConstraintViolationObject constraintViolations validator.validate(object, groups);if (!constraintViolations.isEmpty()) {StringBuilder msg new StringBuilder();for(ConstraintViolationObject constraint: constraintViolations){msg.append(constraint.getMessage()).append(br);}throw new RRException(msg.toString());}}
} Controller层使用 /*** 保存用户*/PostMapping(/save)public R save(RequestBody SysUserEntity user){ValidatorUtils.validateEntity(user, AddGroup.class);sysUserService.saveUser(user);return R.ok();} 源码获取 大家点赞、收藏、关注、评论啦 、查看微信公众号获取联系方式 打卡 文章 更新 192/ 365天 精彩专栏推荐订阅在下方专栏 Java项目精品实战案例《100套》 web前端期末大作业网页实战《100套》