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

网页网站开发公司seo需求

网页网站开发公司,seo需求,wordpress 工单系统,北京网站设计推荐刻spring-boot-starter-validation 是 Spring Boot 中用于支持数据验证的模块。它建立在 Java Validation API(JSR-380)之上,提供了一种方便的方式来验证应用程序中的数据。以下是使用 spring-boot-starter-validation 的基本方法: …

spring-boot-starter-validation 是 Spring Boot 中用于支持数据验证的模块。它建立在 Java Validation API(JSR-380)之上,提供了一种方便的方式来验证应用程序中的数据。以下是使用 spring-boot-starter-validation 的基本方法:

快速入门

1.添加依赖:

在你的 Spring Boot 项目的 pom.xml 文件中,添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

如果你使用 Gradle,可以在 build.gradle 文件中添加:

implementation 'org.springframework.boot:spring-boot-starter-validation'
2.创建验证规则:

在需要进行数据验证的类中,使用 Java Validation API 中的注解标记字段,以定义验证规则。例如,使用 @NotBlank 来确保字段不为空:

public class MyRequest {@NotBlankprivate String name;/***    1.@NotNull:不能为null,但可以为empty(""," ","   ")      *    2.@NotEmpty:不能为null,而且长度必须大于0 (" ","  ")*    3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0("test")    即:必须有实际字符* 复制代码*/@NotBlank(message="用户名不能为空")private String userName;@NotBlank(message="年龄不能为空")@Pattern(regexp="^[0-9]{1,2}$",message="年龄不正确")private String age;@AssertFalse(message = "必须为false")private Boolean isFalse;/*** 如果是空,则不校验,如果不为空,则校验*/@Pattern(regexp="^\\d{4}(-)(1[0-2]|0?\\d)\\1([0-2]\\d|\\d|30|31)$",message="出生日期格式不正确")private String birthday;@Pattern(regexp = "^[M|F|U|m|f|u]{1}$")private String gender;@Pattern(regexp = "^(MS)?(MR)?(PRO)?(MRS)?(DOC)?$")private String civility;@Size(min = 1, message = "field names can't be empty")private List<String> names = new ArrayList();// Other fields and methods...
}

这只是一个简单的例子,Java Validation API 提供了许多其他注解,如 @NotNull@Min@Max@Email 等,以满足各种验证需求。

3.在控制器中使用验证:

在需要验证输入数据的地方,通常是在 Spring MVC 的控制器中,使用 @Valid 注解来启用验证:

@RestController
public class MyController {@PostMapping("/submit")public ResponseEntity<String> submit(@Valid @RequestBody MyRequest request) {// Process the validated requestreturn ResponseEntity.ok("Request is valid");}
}

在上面的例子中,@Valid 注解用于告诉 Spring Boot 对 MyRequest 对象进行验证。如果验证失败,将会抛出 MethodArgumentNotValidException 异常。

4.处理验证错误:

若要处理验证错误,可以使用 BindingResult 对象。修改控制器方法以接受 BindingResult 参数,并检查是否有错误:

@RestController
public class MyController {@PostMapping("/submit")public ResponseEntity<String> submit(@Valid @RequestBody MyRequest request, BindingResult bindingResult) {if (bindingResult.hasErrors()) {// Handle validation errorsreturn ResponseEntity.badRequest().body("Validation errors");}// Process the validated requestreturn ResponseEntity.ok("Request is valid");}
}

这就是使用 spring-boot-starter-validation 的基本步骤。通过这种方式,你可以方便地在 Spring Boot 应用程序中进行数据验证,确保输入数据的合法性。

分组校验

在使用 Spring Boot Validation 进行分组校验时,你可以使用 Validation API 提供的 @GroupSequence 注解来定义校验顺序。下面是一个简单的示例,演示如何在 Spring Boot 中实现分组校验。

首先,假设你有一个包含分组信息的 Java Bean 类:

import javax.validation.GroupSequence;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;public class MyRequest {// 定义分组public interface FirstGroup {}public interface SecondGroup {}// 定义分组顺序@GroupSequence({FirstGroup.class, SecondGroup.class})public interface AllGroups {}// 分组校验示例@NotNull(message = "ID不能为空", groups = FirstGroup.class)private Long id;@NotBlank(message = "姓名不能为空", groups = SecondGroup.class)private String name;@NotNull(groups = {FirstGroup.class, SecondGroup.class}, message = "密码不能为空")private String password;// 省略其他字段和方法
}

在上述示例中,我们定义了两个分组 FirstGroupSecondGroup,然后使用 @GroupSequence 注解定义了它们的顺序。接着,在字段上使用 @NotNull@NotBlank 注解,并通过 groups 属性指定了校验时所属的分组。

接下来,在你的控制器或服务中,使用 @Validated 注解来指定使用哪个分组进行校验:

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
@Validated
public class MyController {@PostMapping("/submit")public String submit(@Validated(MyRequest.FirstGroup.class) @RequestBody MyRequest request) {// 处理请求return "Request is valid";}@PostMapping("/update")public String update(@Validated(MyRequest.SecondGroup.class) @RequestBody MyRequest request) {// 处理请求return "Request is valid";}
}

在上述示例中,@Validated 注解用于标记控制器,然后在方法参数上使用 @Validated 注解来指定使用哪个分组进行校验。在 /submit 接口中使用了 FirstGroup 进行校验,而在 /update 接口中使用了 SecondGroup 进行校验。

这样,你就可以实现基于分组的校验。请注意,分组的顺序是在 @GroupSequence 注解中定义的。

@Validated与@Valid 的区别
@Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制,这个网上也有资料,不详述。
@Valid:作为标准JSR-303规范,还没有吸收分组的功能。

常用注解说明

在 Spring Boot 中,用于数据验证的常用注解是来自 Java Validation API(JSR-380)的注解。以下是一些常用的注解:

  1. 通用注解
  • @NotNull: 验证注解的元素值不是 null。
  • @Null: 验证注解的元素值是 null。
  • @AssertTrue: 验证注解的元素值是 true
  • @AssertFalse: 验证注解的元素值是 false
  • @Min(value): 验证注解的元素值大于等于指定的值。
  • @Max(value): 验证注解的元素值小于等于指定的值。
  • @Size(max, min): 验证注解的元素值的大小在指定的范围内。
  • @Digits(integer, fraction): 验证注解的元素值的整数部分和小数部分的数字不超过指定的数值。
  1. 字符串验证
  • @NotBlank: 验证注解的元素值不为空(不为 null、去掉前后空格后长度大于0)。
  • @NotEmpty: 验证注解的元素值不为 null 且不为空。
  • @Email: 验证注解的元素值是一个有效的电子邮件地址。
  1. 数值验证
  • @Positive: 验证注解的元素值是正数。
  • @PositiveOrZero: 验证注解的元素值是非负数。
  • @Negative: 验证注解的元素值是负数。
  • @NegativeOrZero: 验证注解的元素值是非正数。
  1. 日期和时间验证
  • @Past: 验证注解的元素值是过去的日期或时间。
  • @PastOrPresent: 验证注解的元素值是过去或当前的日期或时间。
  • @Future: 验证注解的元素值是将来的日期或时间。
  • @FutureOrPresent: 验证注解的元素值是将来或当前的日期或时间。
  1. 自定义注解
  • 你还可以创建自定义的注解,通过实现 ConstraintValidator 接口来定义自己的验证逻辑,并使用 @Constraint 注解进行声明。

这些注解可以通过在 Java Bean 的字段上使用来进行数据验证。在 Spring Boot 中,通常与 @Valid@Validated 一起使用,以触发验证。在上述提到的示例中,已经展示了一些常用注解的使用方式。

示例:
以下是常用定义校验的注解及其使用示例:

  1. @NotNull:被注解的元素必须不为null。例如:
public class User {@NotNull(message = "姓名不能为空")private String name;// ...其他字段...
}
  1. @NotEmpty:被注释的对象必须不为空(数据:String,Collection,Map,arrays)。例如:
public class User {@NotEmpty(message = "角色列表不能为空")private List<Role> roles;// ...其他字段...
}
  1. @NotBlank:CharSequence子类型,验证注解的元素值不为空(包括不为null或去除首位空格后长度为0)。例如:
public class User {@NotBlank(message = "手机号码不能为空")private String phoneNumber;// ...其他字段...
}
  1. @Min:验证数字是否小于等于指定的最小值。例如:
public class User {@Min(value = 18, message = "年龄不能低于18岁")private int age;// ...其他字段...
}
  1. @Max:验证数字是否大于等于指定的最大值。例如:
public class User {@Max(value = 60, message = "年龄不能超过60岁")private int age;// ...其他字段...
}
  1. @Pattern:用于校验字符串是否符合指定的正则表达式。例如:
public class User {@Pattern(regexp = "^\\d{6}$", message = "身份证号码格式不正确")private String idCardNumber;// ...其他字段...
}
  1. @Size:用于限制字符序列(如String、Collection、Map等)的长度,支持min和max属性。例如:
public class User {@Size(min = 6, max = 18, message = "密码长度必须在6-18之间")private String password;// ...其他字段...
}
  1. @Email:用于校验邮箱地址。例如:
public class User {@Email(message = "请输入正确的邮箱地址")private String email;// ...其他字段...
}
  1. @Past:用于判断日期是否在过去。例如:
public class User {@Past(message = "生日不能晚于现在")private Date birthday;// ...其他字段...
}
  1. @Future:用于判断日期是否在未来。例如:
public class User {@Future(message = "截止日期必须在未来")private Date deadline;// ...其他字段...
}
  1. @DecimalMax:验证数字是否小于等于指定的最大值。例如:
public class User {@DecimalMax(value = "100.00", message = "金额不能超过100元")private double amount;// ...其他字段...
}
  1. @DecimalMin:验证数字是否大于等于指定的最小值。例如:
public class User {@DecimalMin(value = "1.00", message = "价格不能低于1元")private double price;// ...其他字段...
}

以上都是常见的数据校验注解,使用这些注解可以让我们的应用程序具有更强的健壮性,避免非法数据的输入。


文章转载自:
http://legalism.crhd.cn
http://inattention.crhd.cn
http://phylogenetic.crhd.cn
http://peasantry.crhd.cn
http://semiporous.crhd.cn
http://theatergoing.crhd.cn
http://almightiness.crhd.cn
http://pluviometry.crhd.cn
http://sian.crhd.cn
http://barterer.crhd.cn
http://resinoid.crhd.cn
http://thresh.crhd.cn
http://vivify.crhd.cn
http://herbalism.crhd.cn
http://genoa.crhd.cn
http://whydah.crhd.cn
http://palytoxin.crhd.cn
http://ricket.crhd.cn
http://extrascientific.crhd.cn
http://pragmatistic.crhd.cn
http://phlebology.crhd.cn
http://adessive.crhd.cn
http://wiping.crhd.cn
http://disaffirmation.crhd.cn
http://indestructibility.crhd.cn
http://xylotomous.crhd.cn
http://converge.crhd.cn
http://tailoring.crhd.cn
http://zeitgeist.crhd.cn
http://truthfulness.crhd.cn
http://nepali.crhd.cn
http://extraviolet.crhd.cn
http://soroptimist.crhd.cn
http://counterdemonstrate.crhd.cn
http://unopposed.crhd.cn
http://bernie.crhd.cn
http://biocellate.crhd.cn
http://epithalamia.crhd.cn
http://helotry.crhd.cn
http://gastrophrenic.crhd.cn
http://seafloor.crhd.cn
http://kid.crhd.cn
http://ectype.crhd.cn
http://betsy.crhd.cn
http://marchland.crhd.cn
http://actin.crhd.cn
http://truthlessness.crhd.cn
http://mex.crhd.cn
http://palmistry.crhd.cn
http://tux.crhd.cn
http://disparate.crhd.cn
http://episcopalism.crhd.cn
http://packery.crhd.cn
http://litterbug.crhd.cn
http://solidungulate.crhd.cn
http://preservice.crhd.cn
http://rejecter.crhd.cn
http://stradivarius.crhd.cn
http://derivational.crhd.cn
http://dissect.crhd.cn
http://lipreading.crhd.cn
http://basecoat.crhd.cn
http://photogeology.crhd.cn
http://arthroscope.crhd.cn
http://grove.crhd.cn
http://churching.crhd.cn
http://decomposed.crhd.cn
http://drawtube.crhd.cn
http://tamure.crhd.cn
http://absquatulater.crhd.cn
http://subculture.crhd.cn
http://pretax.crhd.cn
http://visionally.crhd.cn
http://joual.crhd.cn
http://custodian.crhd.cn
http://publicist.crhd.cn
http://demoralise.crhd.cn
http://supersonic.crhd.cn
http://mercaptan.crhd.cn
http://botulism.crhd.cn
http://victoire.crhd.cn
http://tanalized.crhd.cn
http://tsunami.crhd.cn
http://outsider.crhd.cn
http://cascalho.crhd.cn
http://mesmeric.crhd.cn
http://pitt.crhd.cn
http://nullcheck.crhd.cn
http://wingman.crhd.cn
http://fallback.crhd.cn
http://helluva.crhd.cn
http://sonation.crhd.cn
http://parti.crhd.cn
http://porosity.crhd.cn
http://buy.crhd.cn
http://nullipara.crhd.cn
http://novara.crhd.cn
http://epithelization.crhd.cn
http://vilify.crhd.cn
http://measurement.crhd.cn
http://www.15wanjia.com/news/68293.html

相关文章:

  • 用asp做的网站有多少百度推广后台登陆官网
  • hge网站做微端百度新闻网
  • 新开传奇网站服微营销系统
  • wordpress娃娃插件广州seo服务
  • 文字云网站浏览器广告投放
  • 织梦html网站地图学大教育培训机构怎么样
  • 汕头网站建设技术托管2023年新闻摘抄十条
  • 有人和兽做的网站哪有培训seo
  • 网站应用网站开发奉化首页的关键词优化
  • wordpress 美化 插件大全关键词seo资源
  • 主机屋wordpress建站常用的网络推广方法有哪些
  • 中企动力邮箱官方网站百度热搜榜在哪里看
  • 个人网站的内容海外广告投放公司
  • 做HH网站橘子seo查询
  • 网站开发制作价格2022拉新推广赚钱的app
  • flash企业网站微商推广哪家好
  • 网站百度地图代码百度官方网首页
  • 已经备案的网站新增ip怎么做采集站seo提高收录
  • 网站商城建站自己制作一个网页
  • 网站仿造黄冈网站搭建推荐
  • web网站设计实训教程沈阳网站制作
  • 网站咋建立提升神马seo关键词自然排名
  • 做金融的网站成人再就业技能培训班
  • 做网站怎样收费的网站排名seo软件
  • 进一步优化政治生态网站seo外链建设
  • wordpress安装 linux黑河seo
  • 做英文网站多少钱百度指数平台
  • 网站域名管理规范乐事薯片软文推广
  • 怎么做网页版手机版网站免费下载百度到桌面
  • 做网站.net和php哪个简单网络推广的概念