Validator一般用来验证前端页面传过来的数据 是否符合预期

首先在需要检验的pojo中对需要检验的属性加相关注解如下:

package com.aekc.mmall.param;import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;public class UserParam {private Integer id;@NotBlank(message = "用户名不能为空")@Length(min = 1, max = 20, message = "用户名长度")private String username;@NotBlank(message = "电话不可以为空")@Length(min = 1, max = 13, message = "电话长度需要在13个字符以内")private String telephone;@Email@NotBlank(message = "邮箱不能为空")private String mail;@NotNull(message = "必须指定用户状态")@Min(value = 0, message = "用户状态不合法")@Max(value = 1, message = "用户状态不合法")private Integer status;
}
  • 1.@NotNull注解: eg:如果传过来的noticeType为空,则会报如下错误

    @NotBlank(message="类型不能为空")
    private String noticeType;
  • @NotNull:不能为null,但可以为empty
  • @NotEmpty:不能为null,而且长度必须大于0
    @NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
    案例:
  • 1.String name = null; @NotNull: false @NotEmpty:false @NotBlank:false

  • 2.String name = ""; @NotNull:true @NotEmpty: false @NotBlank: false

  • 3.String name = " "; @NotNull: true @NotEmpty: true @NotBlank: false

  • 4.String name = "Great answer!"; @NotNull: true @NotEmpty:true @NotBlank:true

@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 
value–字段说明 
name–重写属性名字 
dataType–重写属性类型 
required–是否必填 
example–举例说明 
hidden–隐藏

@ApiModel(value="user对象",description="用户对象user")
public class User implements Serializable{
    private static final long serialVersionUID = 1L;
     @ApiModelProperty(value="用户名",name="username",example="xingguo")
     private String username;
     @ApiModelProperty(value="状态",name="state",required=true)
      private Integer state;
      private String password;
      private String nickName;
      private Integer isDeleted;

@ApiModelProperty(value="id数组",hidden=true)
      private String[] ids;
      private List<String> idList;
     //省略get/set
}

注意在使用@NotBlank等注解时,一定要和@valid一起使用,不然@NotBlank不起作用(不用注解也可以,可以写类。。校验的两种方式1.加注解@Valid(这种方式后台会直接500错误,不友好) 2.可以写类,可以自定义抛出异常,)

  • 检验类:

    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 {Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);if (!constraintViolations.isEmpty()) {StringBuilder msg = new StringBuilder();for(ConstraintViolation<Object> constraint:  constraintViolations){msg.append(constraint.getMessage()).append("<br>");}throw new RRException(msg.toString());}}
    }
    
  • 这是Controller:
  • @PostMapping("noticeList")
    @ApiOperation("通知/公告列表")
    public R noticeList(@RequestBody UsNoticePram form){//表单校验ValidatorUtils.validateEntity(form);
  • }

Validator检验框架的使用相关推荐

  1. .Net Validator验证框架 [ .Net | Validator Framework | Attribute ]

    引: 具体地址忘记了,我是以前存在window live spaces 现在搬过来备份 (该文章在代码范例上有些说明不全,看附件来补充对 C# Attribute 的应用) 前言 简单易用是.Net ...

  2. jquery. Validator验证框架ajax返回json数据

    今天在使用jquery. Validator验证框架的过程中遇到了一个这个的问题: 我需要动态的去验证注册邮箱是否已经存在了,所以需要用到ajax请求来解决该问题.但在使用该验证框架的ajax异步请求 ...

  3. Validator验证框架

     5.4  Validator验证框架 Struts1.1及以上版本,在提供了动态ActionForm的同时,配合数据验证的需要,还提供了表单输入自动验证的功能,即使用Validator验证框架. ...

  4. springboot 配置 Validator 校验框架国际化 支持快速返回

    1.国际化资源 使用IDEA创建资源组 2.编写配置 application.yml 增加国际化目录配置 增加国际化配置类 从请求头获取多语言关键字 /*** 国际化配置** @author Lion ...

  5. flex Form Validator 检验提交

    学习 flex from validator 表单检验提交,根据我们做 web 应用程序的经验, 在一个Form 提交前要对数据进行检验,如果表单数据通过验证,那么提交. 下面是示例代码: <? ...

  6. java 后端校验_如何实现Java后端数据校验?看这篇就足够!

    前言 每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery ...

  7. 实现Java后端数据校验

    每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery Va ...

  8. Struts2 校验框架学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> truts2 校验框架 Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插 ...

  9. hibernate validate验证框架中@NotEmpty、@NotbBank、@NotNull的区别

    Hibernate Validator验证框架中@NotEmpty.@NotBlank.@NotNull 的区别 Hibernate Validator验证框架中@NotEmpty.@NotBlank ...

最新文章

  1. eclipse提示jre_给新手 Java 开发者的 7 点提示 | Linux 中国
  2. 【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)
  3. 如何将参数传递给批处理文件?
  4. 构建之法之单元测试及设计流程
  5. Cortex-M3-异常与中断-向量表 s
  6. w8系统搭建php网站,360W8系统下如何配置PHP网站运行环境
  7. 中间滑动 头部底部固定_固定抗震弹性支座报价技术参数
  8. html符号实体----介绍
  9. c语言数字黑洞123问题,PAT-B 1019 数字黑洞 (C语言)
  10. idea插件Iedis 2安装与使用
  11. 单片机如何实现单片机+蓝牙模块或手机蓝牙模块,手机上应用程序 ?
  12. Jquery之append()和html()的区别
  13. paip.租房宝付房租功能抓包总结
  14. 在退出作用域时做一些事
  15. python和按键精灵哪个稳定_按键精灵教程,学了这个你也能做出稳定的脚本
  16. 6轴工业机器人机械手的控制方式及特点
  17. 图片后缀名批量快速修改
  18. spring如何实现IOC和DI思想?
  19. Ubuntu上无法登录网页版本微信的解决方案
  20. 谁是全球芯片行业的“麒麟才子”?得之可得天下!

热门文章

  1. bp神经网络模式识别,bp神经网络数字识别
  2. 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
  3. lumaQQ移植到Android之消息篇
  4. python 提取 B 站视频中的音频
  5. 高级Java开发招聘
  6. 2006年100首好歌
  7. 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和
  8. css background-image 属性
  9. c语言ATM机文件储存账号密码,C语言ATM(有文件输入输出).doc
  10. 房价是鹤岗2倍多,这座小城有星巴克、沃尔玛和三甲医院