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. bootstrap-less源码分析:行和列
  2. 张亚勤:对于产业来讲,深度学习的黄金时代刚刚开始
  3. html em px的不同,CSS:区别 px、em、rem
  4. 多线程共享内存的问题
  5. 程序化广告交易中的点击率预估
  6. 期货与期权(part5)--期货市场机制
  7. HTML5与原生APP之争胜负已出?
  8. ltp-ddt qspi_mtd_dd_rw error can't read superblock on /dev/mtdblock0
  9. GateSvr的设计2
  10. 解决vscode卡顿,CPU占用过高的问题
  11. Aminer学术社交网络数据知识图谱构建(三元组与嵌入)
  12. 用python玩转数据mooc答案_中国大学慕课mooc用Python玩转数据章节测试答案
  13. Monkey命令相关总结
  14. 计算机桌面图标出现蓝框,计算机桌面图标出现蓝框?
  15. 从零到上亿用户,我是如何一步步优化MySQL数据库的?(建议收藏)
  16. ESP8266开发板刷WI-PWN固件(wifi杀手)教程(详细)
  17. 每日新闻丨工信部发布绿色数据中心技术产品目录;阿里巴巴核心系统100%上云;苹果产品路线图曝光...
  18. 西瓜错时上市销售,提高经济效益的背后是技术支持!
  19. 【毒鸡汤】基层管理如果没有这些心态,难!
  20. 【教程】Unity账号注册和Unity Hub激活

热门文章

  1. 如何将打开的多个excel文件,显示为独立窗口?
  2. 3. css-loader
  3. style-loader 与css-loader 处理 css样式文件
  4. 绩效考核-项目经理绩效考核指标
  5. oracle恢复误删字段,Oracle恢复被误删除存储过程的2种方法
  6. 卡通渲染技巧(一)——漫反射部分
  7. 什么叫模拟量和数字量
  8. bp神经网络阈值如何确定,神经网络阈值是什么
  9. DSP/BIOS详解入门-再回炉
  10. 为什么邮件发的邮箱会进垃圾箱?企业邮箱进垃圾箱有什么处理方法?