Validator检验框架的使用
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检验框架的使用相关推荐
- .Net Validator验证框架 [ .Net | Validator Framework | Attribute ]
引: 具体地址忘记了,我是以前存在window live spaces 现在搬过来备份 (该文章在代码范例上有些说明不全,看附件来补充对 C# Attribute 的应用) 前言 简单易用是.Net ...
- jquery. Validator验证框架ajax返回json数据
今天在使用jquery. Validator验证框架的过程中遇到了一个这个的问题: 我需要动态的去验证注册邮箱是否已经存在了,所以需要用到ajax请求来解决该问题.但在使用该验证框架的ajax异步请求 ...
- Validator验证框架
5.4 Validator验证框架 Struts1.1及以上版本,在提供了动态ActionForm的同时,配合数据验证的需要,还提供了表单输入自动验证的功能,即使用Validator验证框架. ...
- springboot 配置 Validator 校验框架国际化 支持快速返回
1.国际化资源 使用IDEA创建资源组 2.编写配置 application.yml 增加国际化目录配置 增加国际化配置类 从请求头获取多语言关键字 /*** 国际化配置** @author Lion ...
- flex Form Validator 检验提交
学习 flex from validator 表单检验提交,根据我们做 web 应用程序的经验, 在一个Form 提交前要对数据进行检验,如果表单数据通过验证,那么提交. 下面是示例代码: <? ...
- java 后端校验_如何实现Java后端数据校验?看这篇就足够!
前言 每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery ...
- 实现Java后端数据校验
每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery Va ...
- Struts2 校验框架学习笔记
2019独角兽企业重金招聘Python工程师标准>>> truts2 校验框架 Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插 ...
- hibernate validate验证框架中@NotEmpty、@NotbBank、@NotNull的区别
Hibernate Validator验证框架中@NotEmpty.@NotBlank.@NotNull 的区别 Hibernate Validator验证框架中@NotEmpty.@NotBlank ...
最新文章
- eclipse提示jre_给新手 Java 开发者的 7 点提示 | Linux 中国
- 【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)
- 如何将参数传递给批处理文件?
- 构建之法之单元测试及设计流程
- Cortex-M3-异常与中断-向量表 s
- w8系统搭建php网站,360W8系统下如何配置PHP网站运行环境
- 中间滑动 头部底部固定_固定抗震弹性支座报价技术参数
- html符号实体----介绍
- c语言数字黑洞123问题,PAT-B 1019 数字黑洞 (C语言)
- idea插件Iedis 2安装与使用
- 单片机如何实现单片机+蓝牙模块或手机蓝牙模块,手机上应用程序 ?
- Jquery之append()和html()的区别
- paip.租房宝付房租功能抓包总结
- 在退出作用域时做一些事
- python和按键精灵哪个稳定_按键精灵教程,学了这个你也能做出稳定的脚本
- 6轴工业机器人机械手的控制方式及特点
- 图片后缀名批量快速修改
- spring如何实现IOC和DI思想?
- Ubuntu上无法登录网页版本微信的解决方案
- 谁是全球芯片行业的“麒麟才子”?得之可得天下!