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

做网站要用什么软件图文教程网站培训制度

做网站要用什么软件图文教程,网站培训制度,湖南省建设厅证件查询,东阳建设网站一、Bean Validation简介 Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),目前最新稳定版2.0.2(201…

一、Bean Validation简介

Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),目前最新稳定版2.0.2(201909)
对于spring boot应用,直接引用它提供的starter

<!--        基于注解的数据校验规范 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

二、常用注解

常用注解如下:
在这里插入图片描述
直接在Controller层使用

@RestController
@RequestMapping("/app/api")
@Validated
@Slf4j
public class SpringGuaranteeReportController {@RequestMapping("/sendSpringGuaranteeReport")public ResultObject<String> 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 List<String> 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.yayakq.cn/news/813218/

相关文章:

  • 最早做淘宝返利的网站电子商务网站的特色
  • 站长工具seo综合查询全面解析做pc端网站价位
  • 宝安西乡做网站丽江网站开发
  • 无锡网站制作排名微信商城模板
  • 做网站用哪个写比较好wordpress评论区插件
  • 做类似58同城的网站创建网站时可使用的数据库有
  • 深圳企业网站建设制作wordpress留言标签板
  • 做骗子网站学网站建设需要什么软件有哪些
  • 北京网站开发网络公司吉林最新消息今天新增
  • 兰州展柜公司网站建设上海市有哪些公司
  • 建设网站申请空间需要多少钱wordpress调用二级分类目录
  • 国内最大的软件开发商成都官网seo厂家
  • 做医药代表去什么招聘网站seo网站优化方法
  • 网站建设费计入什么科目比较好<网站建设与运营》
  • 河北通信网站建设网站建设怎么用长尾做标题
  • 建设银行网站查余额阜阳市建设工程质量检测站网站
  • 惠州营销网站建设公司互联网技术包括哪些
  • 网站的代码在哪里设置北京王府井在几环
  • 苏州网络科技公司建网站整个网站全是图片做的
  • 制作网页心得做网站优化好的网络公司
  • 网站程序 seo基于wordpress的博客
  • 梦扬科技 合肥网站建设jsp网站开发工具
  • 商城网站建设 优帮云下什么软件做网站
  • 重庆市建设工程管理协会网站活动线报资源网
  • iis网站权限怎么设置网页加速器手机版
  • 如何区分官方网站和空壳网站深圳南园网站建设
  • 盐城市网站建设公司布局网站开发
  • 更新网站怎么弄seo提升关键词排名
  • 网站建设与运行的盈利收入黑龙江省中国建设银行网站首页
  • 专业做室内设计的网站有哪些内容建设网站女装名字大全