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

高碑店建设局网站衡水精品网站建设

高碑店建设局网站,衡水精品网站建设,网络营销导向企业网站建设的一般原则包括,天津哪里做网站最好一、Bean Validation简介 Bean Validation是Java定义的一套基于注解的数据校验规范#xff0c;目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本#xff0c;再到JSR 380的2.0版本#xff08;2.0完成于2017.08#xff09;#xff0c;目前最新稳定版2.0.2#xff08;201…一、Bean Validation简介 Bean Validation是Java定义的一套基于注解的数据校验规范目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本再到JSR 380的2.0版本2.0完成于2017.08目前最新稳定版2.0.2201909 对于spring boot应用直接引用它提供的starter !-- 基于注解的数据校验规范 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency二、常用注解 常用注解如下 直接在Controller层使用 RestController RequestMapping(/app/api) Validated Slf4j public class SpringGuaranteeReportController {RequestMapping(/sendSpringGuaranteeReport)public ResultObjectString sendSpringGuaranteeReport(Min(value 1) Max(value 2) Integer mmsType,Min(value 1) Max(value 2) Integer groupType,NotBlank String opTime) {…………} } 一个简单的接口传入一个Person对象加上Valid启用校验bindingResult里面就包含了参数校验的结果 Data public class Person {NotBlank(message 姓名不能为空)private String name;NotBlank(message 性别不能为空)private String sex;NotNull(message 年龄不能为空)Max(value 100, message 年龄不能超过100)private Integer age;Email(message 电子邮箱格式错误)private String email;Pattern(regexp ^1[3|4|5|7|8][0-9]{9}$)private String phone;NotEmpty(message 兴趣不能为空)private ListString hobby; } 这里做了判空和基本格式校验 其中关于NotEmpty、NotNull、NotBlank的区别 简单来说在Integer或者自定义对象中使用NotNull在String上使用NotBlank在集合上使用NotEmpty 三、配置类 validate参数校验默认的是一个参数校验失败后还会继续校验后面的参数通过这个配置改成校验参数时只要出现校验失败的情况就立即抛出对应的异常结束校验不再进行后续的校验 import org.hibernate.validator.HibernateValidator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory;/*** validate参数校验默认的是一个参数校验失败后还会继续校验后面的参数* 通过这个配置改成校验参数时只要出现校验失败的情况就立即抛出对应的异常结束校验不再进行后续的校验*/ Configuration public class ValidationConfig {Beanpublic Validator validator() {ValidatorFactory validatorFactory Validation.byProvider(HibernateValidator.class).configure()/**failFast的意思只要出现校验失败的情况就立即结束校验不再进行后续的校验*/.failFast(true).buildValidatorFactory();return validatorFactory.getValidator();}Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() {MethodValidationPostProcessor methodValidationPostProcessor new MethodValidationPostProcessor();methodValidationPostProcessor.setValidator(validator());return methodValidationPostProcessor;}}validate参数校验失败后返回的json数据可能并不是咱们最终想要的下图就是校验失败后它默认返回的数据 一般情况下咱们可能只需要图中标红的那个提示信息就OK了 那怎么改它的返回数据呢 只要添加一个异常处理类就行了捕获抛出的异常 import com.ai.boy.common.R; import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.validation.BindException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import java.util.stream.Collectors;/*** 全局异常处理*/ ControllerAdvice Slf4j public class GlobalHandlerExceptionResolver {/*** 处理请求中 使用Valid 验证路径中请求实体校验失败后抛出的异常*/ExceptionHandler(BindException.class)ResponseBodypublic R BindExceptionHandler(BindException e) {String message e.getBindingResult().getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining());return R.error(message);}/*** 处理请求参数格式错误 RequestParam上validate失败后抛出的异常是ConstraintViolationException*/ExceptionHandler(ConstraintViolationException.class)ResponseBodypublic R ConstraintViolationExceptionHandler(ConstraintViolationException e) {String message e.getConstraintViolations().stream().map(ConstraintViolation::getMessage).collect(Collectors.joining());return R.error(message);}/*** 处理未知异常* */ExceptionHandler(Exception.class)ResponseBodypublic R error(HttpServletResponse response, Exception e){log.info(未知异常信息:{},e.getMessage());return R.error(未知异常请联系管理员);}}
http://www.dnsts.com.cn/news/224190.html

相关文章:

  • 怎样做商业网站平台网站站点是什么
  • 英语不好的做网站运营可以吗李江seo
  • 一般网站开发完周期网站seo优化检测
  • 营销型建设网站公司黄冈网站建设哪家快些
  • 福建泉州网站建设公司哪家好做机械设备类网站用什么颜色好
  • 深圳定制网站制作咨询电话wordpress社交平台主题
  • php 资讯网站网站推广方式大全
  • 网站建设验收意见辽阳化工网站建设
  • 网站前台的实现标书制作注意事项
  • 路桥区高质量营销型网站建设创建自己的微信公众号
  • 中国十大网站建设公司手机端steam怎么下载
  • 网站首页界面设计怎么在百度上搜到自己的网站
  • 贵阳网站建设app开发ps网页设计稿
  • 精灵网站建设营销型网站有意义吗
  • 模板网站也需要服务器吗模板网页生成
  • 电商网站平台有哪些功能网站开发建设公司
  • 网站建设与app开发手机电商网站模板
  • asp网站咋做有哪些基于网站开发的报表设计器
  • 企业网站的高跳出率应该如何解决网上有做衣服的网站
  • 网站开发必学的技巧有哪些做网站好还是做安卓app好
  • 网站设计企业wordpress mylife
  • 青岛网站建设方案优化漳州公司建设网站
  • 做电影网站需要什么条件wordpress 加载
  • 工信部官网查询系统查询手机哈尔滨百度推广排名优化
  • WordPress如何备份恢复长春搜索引擎优化
  • 合肥高新城创建设投资有限公司网站天津网站建设基本流程图
  • 网站建设 有哪些费用商标和logo的区别
  • wordpress外贸网站好用的模板有了源码怎么做网站
  • 安徽池州做企业网站wordpress系统和插件
  • 网站后台有显示前台没有wordpress根目录