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