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

广州市网站设计对外贸易企业网站建设流程

广州市网站设计,对外贸易企业网站建设流程,谷歌seo采集,石家庄有什么好玩的地方validation-数据校验 前端可以通过day.js、elemetui的表单验证rules等 进行校验。 为什么使用#xff1a; Validation是一套帮助我们继续对传输的参数进行数据校验的注解#xff0c;通过配置Validation可以轻松优雅的完成对数据的约束检验。 添加注解 !-- val…validation-数据校验 前端可以通过day.js、elemetui的表单验证rules等 进行校验。 为什么使用 Validation是一套帮助我们继续对传输的参数进行数据校验的注解通过配置Validation可以轻松优雅的完成对数据的约束检验。 添加注解 !-- validation数据校验--dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactIdversion2.0.1.Final/version/dependency!--springboot 高版本默认以及成validation添加下面依赖属性验证--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency 常用注解 AssertTrue用于 boolean 字段该字段只能为 trueAssertFalse用于 boolean 字段该字段只能为 falseDecimalMax用于 Number 字段只能小于或等于该值DecimalMin用于 Number 字段只能大于或等于该值Digits(integer2,fraction20)检查是否是数字校验整数位及小数位Future检查该字段的日期是否是属于将来的日期Past验证日期是否在当前时间之前否则无法通过校验Length(min2,max6)用于字符串检查字段长度是否在指定范围内Max用于 Number 字段只能小于或等于该值Min用于 Number 字段只能大于或等于该值NotNull该字段不能为空NotEmpty用于字符串该字段不能为空字符串NotBlank用于字符串该字段不能为空字符串忽略空格Null该字段必须为空Size(min2,max4)用于字符串、数组、集合、Map等检查该字段的size是否在指定范围Digits(integer 2, fraction 2)验证数字的整数位和小数位的位数是否超过指定的长度Pattern(regexp “[abc]”)用于验证字段是否与给定的正则相匹配Range(min, max)区间校验Email验证是否是邮件地址如果为null,不进行验证算通过验证。 使用方法 步骤1使用校验注解 在Java中提供了一系列的校验方式它这些校验方式在“javax.validation.constraints”包中提供了如EmailNotNullNotBlank等注解。 自定义错误消息可以覆盖默认的错误提示信息.更改注解的message值 public class BrandEntity implements Serializable {private static final long serialVersionUID 1L;/*** 品牌id*/TableIdprivate Long brandId;/*** 品牌名*/NotBlank(message 品牌名必须提交)private String name; } 步骤2在请求方法种使用校验注解Valid开启校验 RequestMapping(/save)public R save(Valid RequestBody BrandEntity brand){brandService.save(brand);return R.ok();}能够看到defaultMessage: “不能为空”这些错误消息定义在“hibernate-validator”的“\org\hibernate\validator\ValidationMessages_zh_CN.properties”文件中。在该文件中定义了很多的错误规则 javax.validation.constraints.AssertFalse.message 只能为false javax.validation.constraints.AssertTrue.message 只能为true javax.validation.constraints.DecimalMax.message 必须小于或等于{value} javax.validation.constraints.DecimalMin.message 必须大于或等于{value} javax.validation.constraints.Digits.message 数字的值超出了允许范围(只允许在{integer}位整数和{fraction}位小数范围内) javax.validation.constraints.Email.message 不是一个合法的电子邮件地址 javax.validation.constraints.Future.message 需要是一个将来的时间 javax.validation.constraints.FutureOrPresent.message 需要是一个将来或现在的时间 javax.validation.constraints.Max.message 最大不能超过{value} javax.validation.constraints.Min.message 最小不能小于{value} javax.validation.constraints.Negative.message 必须是负数 javax.validation.constraints.NegativeOrZero.message 必须是负数或零 javax.validation.constraints.NotBlank.message 不能为空 javax.validation.constraints.NotEmpty.message 不能为空 javax.validation.constraints.NotNull.message 不能为null javax.validation.constraints.Null.message 必须为null javax.validation.constraints.Past.message 需要是一个过去的时间 javax.validation.constraints.PastOrPresent.message 需要是一个过去或现在的时间 javax.validation.constraints.Pattern.message 需要匹配正则表达式{regexp} javax.validation.constraints.Positive.message 必须是正数 javax.validation.constraints.PositiveOrZero.message 必须是正数或零 javax.validation.constraints.Size.message 个数必须在{min}和{max}之间org.hibernate.validator.constraints.CreditCardNumber.message 不合法的信用卡号码 org.hibernate.validator.constraints.Currency.message 不合法的货币 (必须是{value}其中之一) org.hibernate.validator.constraints.EAN.message 不合法的{type}条形码 org.hibernate.validator.constraints.Email.message 不是一个合法的电子邮件地址 org.hibernate.validator.constraints.Length.message 长度需要在{min}和{max}之间 org.hibernate.validator.constraints.CodePointLength.message 长度需要在{min}和{max}之间 org.hibernate.validator.constraints.LuhnCheck.message ${validatedValue}的校验码不合法, Luhn模10校验和不匹配 org.hibernate.validator.constraints.Mod10Check.message ${validatedValue}的校验码不合法, 模10校验和不匹配 org.hibernate.validator.constraints.Mod11Check.message ${validatedValue}的校验码不合法, 模11校验和不匹配 org.hibernate.validator.constraints.ModCheck.message ${validatedValue}的校验码不合法, ${modType}校验和不匹配 org.hibernate.validator.constraints.NotBlank.message 不能为空 org.hibernate.validator.constraints.NotEmpty.message 不能为空 org.hibernate.validator.constraints.ParametersScriptAssert.message 执行脚本表达式{script}没有返回期望结果 org.hibernate.validator.constraints.Range.message 需要在{min}和{max}之间 org.hibernate.validator.constraints.SafeHtml.message 可能有不安全的HTML内容 org.hibernate.validator.constraints.ScriptAssert.message 执行脚本表达式{script}没有返回期望结果 org.hibernate.validator.constraints.URL.message 需要是一个合法的URLorg.hibernate.validator.constraints.time.DurationMax.message 必须小于${inclusive true ? 或等于 : }${days 0 ? : days 天}${hours 0 ? : hours 小时}${minutes 0 ? : minutes 分钟}${seconds 0 ? : seconds 秒}${millis 0 ? : millis 毫秒}${nanos 0 ? : nanos 纳秒} org.hibernate.validator.constraints.time.DurationMin.message 必须大于${inclusive true ? 或等于 : }${days 0 ? : days 天}${hours 0 ? : hours 小时}${minutes 0 ? : minutes 分钟}${seconds 0 ? : seconds 秒}${millis 0 ? : millis 毫秒}${nanos 0 ? : nanos 纳秒} 步骤3给校验的Bean后紧跟一个BindResult就可以获取到校验的结果。拿到校验的结果就可以自定义的封装。 RequestMapping(/save)public R save(Valid RequestBody BrandEntity brand, BindingResult result){if( result.hasErrors()){MapString,String mapnew HashMap();//1.获取错误的校验结果result.getFieldErrors().forEach((item)-{//获取发生错误时的messageString message item.getDefaultMessage();//获取发生错误的字段String field item.getField();map.put(field,message);});return R.error(400,提交的数据不合法).put(data,map);}brandService.save(brand);return R.ok();}这种是针对于该请求设置了一个内容校验如果针对于每个请求都单独进行配置显然不是太合适实际上可以统一的对于异常进行处理。 步骤4统一异常处理 可以使用SpringMvc所提供的ControllerAdvice通过“basePackages”能够说明处理哪些路径下的异常。 1抽取一个异常处理类 package com.df.gulimall.product.exception;import com.df.common.utils.R; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice;import java.util.HashMap; import java.util.Map;/*** 集中处理所有异常*/ Slf4j RestControllerAdvice(basePackages com.df.gulimall.product.controller) public class GulimallExceptionAdvice {//数据校验异常 sExceptionHandler(value Exception.class)public R handleValidException(MethodArgumentNotValidException exception) {MapString, String map new HashMap();BindingResult bindingResult exception.getBindingResult();bindingResult.getFieldErrors().forEach(fieldError - {String message fieldError.getDefaultMessage();String field fieldError.getField();map.put(field, message);});log.error(数据校验出现问题{},异常类型{}, exception.getMessage(), exception.getClass());return R.error(BizCodeEnume.VALID_EXCEPTION.getCode(), BizCodeEnume.VALID_EXCEPTION.getMsg()).put(data, map);}//其他异常处理ExceptionHandler(value Throwable.class)public R handleException(Throwable throwable) {return R.error(BizCodeEnume.UNKNOW_EXEPTION.getCode(), BizCodeEnume.UNKNOW_EXEPTION.getMsg());} } 2测试 http://localhost:88/api/product/brand/save 3默认异常处理 ExceptionHandler(value Throwable.class)public R handleException(Throwable throwable){log.error(未知异常{},异常类型{},throwable.getMessage(),throwable.getClass());return R.error(BizCodeEnum.UNKNOW_EXEPTION.getCode(),BizCodeEnum.UNKNOW_EXEPTION.getMsg());}4错误状态码 上面代码中针对于错误状态码是我们进行随意定义的然而正规开发过程中错误状态码有着严格的定义规则如该在项目中我们的错误状态码定义 为了定义这些错误状态码我们可以单独定义一个常量类用来存储这些错误状态码 package com.bigdata.common.exception;/**** 错误码和错误信息定义类* 1. 错误码定义规则为5为数字* 2. 前两位表示业务场景最后三位表示错误码。例如100001。10:通用 001:系统未知异常* 3. 维护错误码后需要维护错误描述将他们定义为枚举形式* 错误码列表* 10: 通用* 001参数格式校验* 11: 商品* 12: 订单* 13: 购物车* 14: 物流*/ public enum BizCodeEnum {UNKNOW_EXEPTION(10000,系统未知异常),VALID_EXCEPTION( 10001,参数格式校验失败);private int code;private String msg;BizCodeEnum(int code, String msg) {this.code code;this.msg msg;}public int getCode() {return code;}public String getMsg() {return msg;} } 5测试 http://localhost:88/api/product/brand/save
http://www.hkea.cn/news/14408032/

相关文章:

  • 石桥铺做网站wordpress 封ip段
  • 登建设厅锁子的是哪个网站手机收费网页制作
  • 襄樊最好网站建设价格wordpress 访问速度慢
  • 网站建设上海网站建设公司网站wordpress 耗资源
  • 第一页网站SEO专业数据分析网站
  • 可以帮忙做网站做公司吉隆坡建设大学中文网站
  • 怎样去各大网站做淘宝推广北京房地产网站建设
  • 专注高密做网站哪家好微信官网weixinqqcom
  • 律师事务所网站模板中国建筑土木建设有限公司网站
  • 南京制作网站公司网络推广培训
  • 三合一企业网站模板软件工程师工作内容
  • 做网站的软件公司网络优化工资一般多少
  • 小说类网站程序建材做网销哪个网站好
  • 专业的网站建设公司电话wordpress 插件修改
  • 好建网站微信小程序平台设计
  • 外贸型网站该如何推广wordpress wap主题
  • 织梦5.7cms照明灯具能源电子产品企业网站源码企业模板带后台国内创意网站界面设计
  • 江苏网站建设包括哪些新手怎么做详情页
  • 太原做网站的通讯公司有哪些建站快车代理商
  • 郑州专业高校网站建设公司广告公司设计
  • 网站建设免费建站源代码昆明网站开发培训机构
  • 大自然的网站设计美的网站建设
  • 大型 网站 建设 公司网络推广业务员是干什么的
  • wordpress导入网站文章网站开发语言学习C 吗
  • 做网站月入5万科威网络做网站怎么样
  • 小程序模板图衡阳seo优化首选
  • 做的好微信商城网站小程序商店助手
  • 建设环境竣工验收网站北京市建设工程质量监督站网站
  • 主流搭建网站怎样做网站赚流量
  • 下载网站模板后本地的网站会自动做跳转汽配公司的网站要怎么做