当前位置: 首页 > news >正文

互联在线app开发网站文化创意设计公司

互联在线app开发网站,文化创意设计公司,新闻媒体发稿平台,百度贴吧网页版入口前言文本已收录至我的GitHub仓库#xff0c;欢迎Star#xff1a;https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前#xff0c;其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群#xff0c;群聊号码#xff1a;54968483… 前言文本已收录至我的GitHub仓库欢迎Starhttps://github.com/bin392328206/six-finger种一棵树最好的时间是十年前其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群群聊号码549684836 鼓励大家在技术的路上写博客絮叨这个东西应该是我们撸业务最常用的组件之一了因为之前小六六也是自己就是照着用也没说全面的去了解一下这块今天小六六就带大家一起来梳理梳理哈。JSR-303 简介JSR-303 是 JavaEE 6 中的一项子规范叫做 Bean Validation官方参考实现是 Hibernate Validator。此实现与 Hibernate ORM 没有任何关系。JSR-303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 3.x 之中也大力支持 JSR-303可以在控制器中使用注解的方式对表单提交的数据方便地验证。Spring 4.0 开始支持 Bean Validation 功能。JSR-303 基本的校验规则空检查Null 验证对象是否为 nullNotNull 验证对象是否不为 null, 无法查检长度为 0 的字符串NotBlank 检查约束字符串是不是 Null 还有被 Trim 的长度是否大于 0,只对字符串,且会去掉前后空格NotEmpty 检查约束元素是否为 NULL 或者是 EMPTY布尔检查AssertTrue 验证 Boolean 对象是否为 trueAssertFalse 验证 Boolean 对象是否为 false长度检查Size(min, max) 验证对象(Array, Collection , Map, String)长度是否在给定的范围之内 Length(min, max) 验证字符串长度介于 min 和 max 之间日期检查Past 验证 Date 和 Calendar 对象是否在当前时间之前验证成立的话被注释的元素一定是一个过去的日期Future 验证 Date 和 Calendar 对象是否在当前时间之后 验证成立的话被注释的元素一定是一个将来的日期正则检查Pattern 验证 String 对象是否符合正则表达式的规则被注释的元素符合制定的正则表达式 - regexp正则表达式 - flags指定 Pattern.Flag 的数组表示正则表达式的相关选项数值检查注意建议使用在 String ,Integer 类型不建议使用在 int 类型上因为表单值为 “” 时无法转换为 int但可以转换为 String 为 “”Integer 为 nullMin 验证 Number 和 String 对象是否大等于指定的值Max 验证 Number 和 String 对象是否小等于指定的值DecimalMax 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过 BigDecimal定义的最大值的字符串表示 .小数 存在精度DecimalMin 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过 BigDecimal定义的最小值的字符串表示 .小数 存在精度Digits 验证 Number 和 String 的构成是否合法Digits(integer,fraction) 验证字符串是否是符合指定格式的数字integer 指定整数精度fraction 指定小数精度Range(min, max) 被指定的元素必须在合适的范围内Range(min10000,max50000,message”range.bean.wage”)Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组那么对其中的元素进行递归校验如果是一个 map则对其中的值部分进行校验.(是否进行递归验证)CreditCardNumber 信用卡验证Email 验证是否是邮件地址如果为 null不进行验证算通过验证ScriptAssert(lang ,script, alias)URL(protocol,host, port,regexp, flags)使用至于使用的话小六六这边就不一一的举例了相信大家应该都会可能平时没有那么详细的了解过所以这次我就是好好给大家复习一下哈哈Datapublic class User {  /** id */ NotNull(messageid不能为空) private Long id;  /** 姓名 */ NotBlank(message姓名不能为空) private String name;  /** 年龄 */ NotNull(message年龄不能为空) Max(message年龄不能超过120岁, value  120) Min(message年龄不能小于1岁, value  1) private Integer age;  /** 创建时间 */ Future private Date createTime;} 然后在controller层里使用Valid就好了 /**  * 校验不通过时直接抛异常  * param user  * return  */ PostMapping(/test1) public Object test1(RequestBody Valid User user) {  return 操作成功; }Spring Validation的3种执行校验方式第一种在Controller方法参数前加Valid注解——校验不通过时直接抛异常调用时会抛出一个org.springframework.web.bind.MethodArgumentNotValidException异常2019-04-21 11:35:28.600  WARN 10852 --- [nio-8080-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public java.lang.Object com.example.validation.UserController.test1(com.example.validation.User) with 3 errors: [Field error in object user on field createTime: rejected value [Mon Dec 31 08:00:00 CST 2018]; codes [Future.user.createTime,Future.createTime,Future.java.util.Date,Future]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.createTime,createTime]; arguments []; default message [createTime]]; default message [需要是一个将来的时间]] [Field error in object user on field age: rejected value [0]; codes [Min.user.age,Min.age,Min.java.lang.Integer,Min]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.age,age]; arguments []; default message [age],1]; default message [年龄不能小于1岁]] [Field error in object user on field name: rejected value []; codes [NotBlank.user.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.name,name]; arguments []; default message [name]]; default message [姓名不能为空]] ]其实像这种我想大家肯定是要配合全局统一异常来处理其实还是很好目前我就是这么干的。推荐指数 3星第二种在Controller方法参数前加Valid注解参数后面定义一个BindingResult类型参数——执行时会将校验结果放进bindingResult里面用户自行判断并处理   /**  * 将校验结果放进BindingResult里面用户自行判断并处理  * param user  * param bindingResult  * return  */ PostMapping(/test2) public Object test2(RequestBody Valid User user, BindingResult bindingResult) {  // 参数校验  if (bindingResult.hasErrors()) {   String messages  bindingResult.getAllErrors()    .stream()    .map(ObjectError::getDefaultMessage)    .reduce((m1, m2) - m1    m2)    .orElse(参数输入有误);   throw new IllegalArgumentException(messages);  }    return 操作成功;把结果封装到一个BindingResult中然后再通过自己去封装要抛出的信息这种做法也可以就是每个controller都要写不那么适用推荐指数 2星第三种用户手动调用对应API执行校验——Validation.buildDefault ValidatorFactory().getValidator().validate(xxx)   /**  * 用户手动调用对应API执行校验  * param user  * return  */ PostMapping(/test3) public Object test3(RequestBody User user) {  // 参数校验  validate(user);    return 操作成功; }  private void validate(Valid User user) {  Set validateSet  Validation.buildDefaultValidatorFactory()    .getValidator()    .validate(user, new Class[0]);if (!CollectionUtils.isEmpty(validateSet)) {    String messages  validateSet.stream()     .map(ConstraintViolation::getMessage)     .reduce((m1, m2) - m1    m2)     .orElse(参数输入有误);    throw new IllegalArgumentException(messages);   }}这种其实原理也差不多但是看起来也是一样没有那么优雅推荐指数 2星结尾其实这三种用法的原理都是一样的只是使用的形式不一样了其实看你自己把哈哈。参考JSR日常求赞好了各位以上就是这篇文章的全部内容了能看到这里的人呀都是真粉。创作不易各位的支持和认可就是我创作的最大动力我们下篇文章见六脉神剑 | 文 【原创】如果本篇博客有任何错误请批评指教不胜感激
http://wiki.neutronadmin.com/news/100058/

相关文章:

  • 高端定制网站建设公司全心代发17做网站
  • 网站建设 维护 运营情况报告wordpress如何汉化
  • 狗铺子做网页在那个网站坦洲网站建设公司哪家好
  • 惠州顺德网站建设建设工程教育网一建论坛
  • 电子商务网站建设与管理课后题答案6昆山住房城乡建设局网站查询
  • 做网站都用什么技术网站如何挂马教程
  • 固镇做网站多少钱石家庄菜谱设计公司
  • 盐城市城市建设投资公司网站美工培训班培训学费
  • 建设外贸网站公司我为群众办实事心得体会
  • 物流网站的建设论文wordpress下载流程
  • 简单地产网站怎么上怎么把网站做漂亮
  • 荣成市建设局网站是什么手机网站广告代码
  • 2021免费正能量网站入口wordpress 只收录首页
  • 做公众号app 网站 appwordpress建的网站打开太慢
  • 网站索引量下降erp管理系统官网
  • 海南彩票网站开发umu互动平台
  • 网站建设策划公司地址怎么做兼职类网站
  • 做网站美工需要会什么软件上海网站排名公司
  • 用于制作网站的软件百度安装
  • 建设网站制作汉狮团队常用网站开发软件
  • 青岛建设银行股份有限公司网站首页厦门网站建设企
  • 渠县网站建设高校校园网网站内容如何建设
  • 南京建网站公司注册公司网站模板
  • 做网站要注册商标第几类网站开发市场
  • 中南集团中南建设网站梅州市建设培训中心网站
  • 想开个影视网站 那有做的深圳各大网站制作哪家公司好
  • 南宁建设网站制作昆明网站建设电话
  • 深圳注册公司流程图seo sem是做什么的
  • 海口网页建站模板柳州网站建设哪里有
  • wordpress企业网站教程广州网络营销岗位数量