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

网站标签优化怎么做移动端排名优化软件

网站标签优化怎么做,移动端排名优化软件,杭州百度网站建设,有限责任公司法人承担什么责任【2023】Spring Validation中NotNull注解、NotBlank注解介绍以及使用 前言一、简介spring-validation框架的常用注解 二、代码实现添加依赖1、实体举例2、Controller层:3、统一异常处理4、结果返回验证通过返回验证失败返回 前言 平常我们在编写代码的时候总需要很多if判空NotNull注解、NotBlank注解介绍以及使用 前言一、简介spring-validation框架的常用注解 二、代码实现添加依赖1、实体举例2、Controller层:3、统一异常处理4、结果返回验证通过返回验证失败返回 前言 平常我们在编写代码的时候总需要很多if判空防止出现很多空指针问题。如 if(name!null){return 账号不能为空,请重新输入; } else if(password!null){return 密码不能为空,请重新输入; } 这样就会显得特别low,而且极不美观而使用NotNull 注解就可以通过注解直接实现验证。 一、简介 而spring给我们提供的 NotNull ,NotEmpty 等注解以实现对于接口参数的自动验证。 它这个实现主要是基于JSR 303 JSRJava Specification Request是指由Java社区中的一个或多个成员提交的一项Java技术规范请求的规范 JSR 303 的主要目标是为开发者提供一种在应用程序中进行数据验证的通用机制而无需编写大量的验证代码。它定义了一组用于验证 Java 对象的注解和 API可以用于验证对象的属性、方法参数和返回值等。 注解JSR 303 定义了一组用于验证的注解如 NotNull、Size、Pattern、Min、Max 等。通过在 Java 对象的属性上添加这些注解可以指定验证的条件和约束。常见的使用 JSR 303 的框架包括 Hibernate Validator、Spring Validation 等。 早期的 Spring Web 基于 Hibernate Validator 实现了这些校验规范。在后期Spring 将这部分校验独立成为了一个模块spring-validation需要额外引入依赖实现相关注解校验。 spring-validation框架的常用注解 注解说明Null被注释的元素必须为nullNotNull被注释的元素不能为nullAssertTrue被注释的元素必须为trueAssertFalse被注释的元素必须为falseMin(value)被注释的元素必须是一个数字其值必须大于等于指定的最小值Max(value)被注释的元素必须是一个数字其值必须小于等于指定的最大值DecimalMin(value)被注释的元素必须是一个数字其值必须大于等于指定的最小值DecimalMax(value)被注释的元素必须是一个数字其值必须小于等于指定的最大值Size(max,min)被注释的元素的大小必须在指定的范围内Digits(integer,fraction)被注释的元素必须是一个数字其值必须在可接受的范围内Past被注释的元素必须是一个过去的日期Future被注释的元素必须是一个将来的日期Pattern(value)被注释的元素必须符合指定的正则表达式 注意 下面的注解都可以使用message 属性做异常错误返回的。 如 NotNull(message name不能为空) 在进行请求参数的验证时需要在controller方法的需要验证的参数前面加上Valid或者Validated注解否则Form中的验证注解不起作用。 如果是内层对象需要验证的话需要在里面对象前也加上valid这样无论嵌套多少都可以验证包括对象泛型。 Valid与Validated的区别 Valid可以用在方法、构造函数、方法参数和成员属性字段上Validated可以用在类型、方法和方法参数上。但是不能用在成员属性字段上并且Validated提供了一个分组功能可以在入参验证时根据不同的分组采用不同的验证机制 二、代码实现 添加依赖 springboot 2.3.0 以前可以直接使用而在2.3.0之后的版本不会自动引入jar包,所以要添加以下maven dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId /dependency 1、实体举例 import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.Valid; import javax.validation.constraints.*; import java.util.Date;Data public class User {NotBlank(message 姓名不能为空)private String name;Max(value 30,message 姓名不能超过30岁)private Integer age;private Integer password;private String sex;Past(message 只能是过去的时间)DateTimeFormat(pattern yyyy-MM-dd)private Date date;Email(message 邮箱格式错误)private String email;/**如果引用了其他的对象要想其他的对象的生效需要在引用时加上注解*/Validprivate School school; }2、Controller层: import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.*; import javax.validation.Valid;/*** author zhengfuping* version 1.0* description: TODO 测试 validation*/ RestController RequestMapping(/test) public class TestController {/*** Param * param u 实例对象* param result validation提供的异常处理类* return * return Object*/PostMapping(/save_user)ResponseBodypublic Object saveUser(Valid RequestBody User u , BindingResult result) { // 判断是否有异常,进行返回if (result.hasErrors()){FieldError fieldError result.getFieldError();System.out.println(fieldError);return fieldError;} // 没有异常打印日志返回System.out.println(u);return u;} }3、统一异常处理 如果不想每个Controller层的方法里面都要写一个判断方法可以定义一个全局异常类进行统一处理 import lombok.extern.slf4j.Slf4j; 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 java.util.Objects;/*** author zhengfuping* version 1.0* description: TODO统一处理实体字段验证错误返回*/ ControllerAdvice Slf4j public class ControllerException {ResponseBodyExceptionHandler(MethodArgumentNotValidException.class)public Object handleValidException(MethodArgumentNotValidException e){log.error(Objects.requireNonNull(e.getBindingResult().getFieldError()).getDefaultMessage()); // 正常开发会有统一返回对象 // return Result.error(500, Objects.requireNonNull(e.getBindingResult().getFieldError()).getDefaultMessage());return e.getBindingResult().getFieldError().getDefaultMessage();} }添加统一异常处理后Controller代码则可以简化为为了区分重新写了一个 PostMapping(/save_user2)ResponseBodypublic Object saveUser2(Valid RequestBody User u) {System.out.println(u);return 验证通过;}4、结果返回 验证通过返回 验证失败返回
http://www.dnsts.com.cn/news/908.html

相关文章:

  • 学校网站建设目的是什么意思网络营销工具的特点
  • wordpress博客空间百度快照优化seo
  • 吉林大学建设工程学院官方网站竞价推广套户渠道商
  • 有没有什么做h5的网站营销网站类型
  • 沈阳企业网站2023年最新时政热点
  • 电子商务网站建设规划书四大营销策略
  • ps设计网站步骤舆情报告
  • 网站建设的违约责任制作网站平台
  • 郑州企业网站制作公司河南网络推广那家好
  • 苏州哪家做网站好些建站为应用技术
  • kali做钓鱼网站搜索引擎营销的实现方法有
  • 麟游做网站腾讯企业邮箱登录入口
  • 织梦手机网站有广告环球网广东疫情最新消息
  • 手机下载视频网站模板nba最新新闻
  • 龙之向导外贸专区潍坊网站建设seo
  • 泉州seo建站免费信息推广平台
  • 做三折页的网站国际实时新闻
  • 不同网站的主机和域名南安网站建设
  • 新开传奇网站大全seo到底是做什么的
  • 网站切换语言怎么做泉州百度首页优化
  • 贵州建网站360免费建站官网
  • 网站做竞价优化阿里云网站搭建
  • 菏泽市建设局网站seo优化便宜
  • 做村易通网站站长要收费吗怎么做一个小程序
  • 团购网站建设企业微信营销系统
  • 设计欣赏心得体会网站seo优化的目的
  • 北京官方网站网网络营销推广专员
  • PHP做的彩票网站好用吗龙岗seo优化
  • 营销型网站建设成为企业发展新趋势中国 日本 韩国
  • 网站页面做海报用什么软件手机百度2020最新版