javax.validation校验整理[多字段二选一效验]

javax.validation校验整理[多字段二选一效验]

一、 简介

Javax.Validation是Java EE的一个规范,旨在提供一套通用的API,对Java Bean的属性值进行基础校验和验证。Javax.Validation支持约束验证注解,例如@NotNull和@Size,这些注解可以应用到属性或方法上,自动触发验证过程。

1.注解@Valid与@Validated区别

@Valid与@Validated都是用来校验接收参数的。

@Valid是使用Hibernate validation的时候使用

@Validated是只用Spring Validator校验机制使用

说明:java的JSR303声明了@Valid这类接口,而Hibernate-validator对其进行了实现。

@Validated与@Valid区别:

@Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上,不支持嵌套检测
@Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上,支持嵌套检测

注意:SpringBoot使用@Valid注解需要引入如下POM

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

2.多字段二选一效验

	/**
     * 自定义的效验规则,具体参考属性级别约束,写一个get方法,自定义效验规则,然后返回值必须是符合要求的,不然就直接返回错误信息
     * @return
     */
    @AssertTrue(message = "textContent与attachments必填其一")
    public Boolean getTextContentAndAttachmentsValid(){
        return !StringUtils.isBlank(this.textContent) || !CollectionUtils.isEmpty(this.attachments);
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 8提供了很多方便的工具来进行参数校验,其中最常用的是javax.validation包下的注解。 下面是一个简单的入参验证示例,包括字段类型、长度、手机号码格式、邮箱格式、空值和必传参数等方面的验证。 ```java import javax.validation.constraints.Email; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; public class User { @NotNull(message = "用户名不能为空") @Size(min = 1, max = 20, message = "用户名长度必须在1到20之间") private String username; @NotNull(message = "密码不能为空") @Size(min = 6, max = 20, message = "密码长度必须在6到20之间") private String password; @Pattern(regexp = "^1[3456789]\\d{9}$", message = "手机号码格式不正确") private String phone; @Email(message = "邮箱格式不正确") private String email; public User(String username, String password, String phone, String email) { this.username = username; this.password = password; this.phone = phone; this.email = email; } // getter and setter methods } ``` 在上面的示例中,我们使用了javax.validation.constraints包中的一些注解对User类中的字段进行验证。 @NotNull注解表示该字段必须不为null; @Size注解表示该字段的长度必须在指定的范围内; @Pattern注解表示该字段必须符合指定的正则表达式; @Email注解表示该字段必须是一个有效的邮箱地址。 通过这些注解,我们可以方便地实现参数校验。当参数不符合要求时,会抛出ConstraintViolationException异常,我们可以在异常处理中返回相应的错误信息给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值