首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring验证非空元素的字符串列表

Spring提供了多种验证非空元素的字符串列表的方法,其中一种常用的方式是使用注解@NotEmpty或者@NotBlank。这两个注解用于验证集合中的元素是否为空。

@NotEmpty注解用于验证集合是否不为空,即集合不能为null且至少包含一个元素。如果验证失败,将会抛出ConstraintViolationException异常。例如:

代码语言:txt
复制
public class MyObject {
    @NotEmpty
    private List<String> myList;
    
    // getter and setter
}

@NotBlank注解则用于验证集合中每个元素是否不为空白字符串(包括null和空格)。如果验证失败,同样会抛出ConstraintViolationException异常。例如:

代码语言:txt
复制
public class MyObject {
    @NotBlank
    private List<String> myList;
    
    // getter and setter
}

除了以上两种方式,还可以使用编程方式自定义验证逻辑。可以通过实现ConstraintValidator接口来创建自定义的验证器。例如,验证集合中至少有一个非空元素的自定义验证器可以这样实现:

代码语言:txt
复制
public class NotEmptyElementValidator implements ConstraintValidator<NotEmptyElement, List<String>> {

    @Override
    public void initialize(NotEmptyElement constraintAnnotation) {
        // 初始化验证器
    }

    @Override
    public boolean isValid(List<String> value, ConstraintValidatorContext context) {
        if (value == null) {
            return false;
        }
        for (String element : value) {
            if (element != null && !element.trim().isEmpty()) {
                return true;
            }
        }
        return false;
    }
}

然后,在需要验证的字段上使用@NotEmptyElement注解即可:

代码语言:txt
复制
public class MyObject {
    @NotEmptyElement
    private List<String> myList;
    
    // getter and setter
}

这样,在验证过程中,如果列表中至少有一个非空元素,验证将通过,否则将抛出ConstraintViolationException异常。

推荐的腾讯云相关产品:腾讯云函数计算(Serverless Cloud Function),产品介绍链接地址:腾讯云函数计算

请注意,本答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

jQuery最方便前端验证方式2种(验证与比较验证)

jQuery最方便前端验证方式2种(验证与比较验证) 目录 jQuery最方便前端验证方式2种(验证与比较验证) 使用jQuery地址: 验证需求: 1、验证 2、比较验证 jQuery...验证列表 字符串长度限制、判断字符长度 、js 限制输入、限制不能输入、textarea 长度限制 判断汉字、判断是否汉字 、只能输入汉字 判断是否输入英文、只能输入英文 只能输入数字,判断数字、验证数字...验证需求: 1、验证 当用户没有输入用户名就提交时候【阻止提交】并提示相应文字。...} } 2、比较验证 比较验证就是比较两个字符串是否相同,一般用于比较两次密码是否输入相同...jQuery验证列表 字符串长度限制、判断字符长度 、js 限制输入、限制不能输入、textarea 长度限制 源码 function test() { if

2.2K40

Java中参数验证Spring版)

Java中参数验证Spring版) 1.1....对象参数做不同注解处理就行,对Spring这种常用做法大家应该比较熟了 但我现在遇到需求,因为boss追求通用性,我们controller入口只有一个,是通过传入参数中不同tradeCode来区分调用哪个服务...方案 不能用它注解,但我们可以用它方法,下面我写了一个用Java代码验证参数例子,抛砖引玉,并不能直接用在自己系统哦,想要使用请结合自己系统封装方法,我打算做成注解形式,利用spring aop...,因此我id不传,id不为注解也不会起作用 1.2.4....总结 此篇举了Validation用Java代码实现验证例子,应对service层参数验证,实际应用到自己代码可以自己写个自定义注解,实现aop切面,在切面中进行验证 [老梁讲Java] 欢迎关注公众号

2.5K20
  • 有一个列表,希望字符串中出现这个列表中任何一个元素的话就输出 去掉该元素字符串

    一、前言 前几天在Python钻石群有个叫【盼头】粉丝问了一个关于Python列表处理问题,这里拿出来给大家分享下,一起学习。...有一个列表,希望字符串中出现这个列表中任何一个元素的话就输出 去掉该元素字符串。下图是他自己写部分核心代码。...二、解决过程 他自己想到了一个方法,遍历下列表,之后挨个进行替换,方法肯定是可行,只是觉得应该有更加好方法。...这里需要注意下any()函数,命中列表任一项都会返回True。 不得不说这个any()函数恰到好处。 三、总结 大家好,我是皮皮。...这篇文章基于粉丝提问,针对有一个列表,希望字符串中出现这个列表中任何一个元素的话就输出,去掉该元素字符串问题,给出了具体说明和演示,顺利地帮助粉丝解决了问题!

    1.9K30

    2023-03-31:如何计算字符串中不同回文子序列个数?

    2023-03-31:给定一个字符串 s,返回 s 中不同 回文子序列 个数,通过从 s 中删除 0 个或多个字符来获得子序列。如果一个字符序列与它反转后字符序列一致,那么它是 回文字符序列。...答案2023-03-31:题目要求计算一个给定字符串中不同回文子序列个数,并对结果取模。我们可以使用动态规划来解决这个问题。...例如,在字符串"bccb"中,当i=0且j=3时,l=1,r=2。如果si!=sj,则有两种情况:1.包含右边字符回文子序列数量;2.包含左边字符回文子序列数量。...同时需要注意重复计算回文子序列数量。...+ 1][j as usize - 1] // 重复计算回文子序列数量 + mod_value; // 模运算 }

    1.3K00

    一日一技:包含hashable元素列表如何去重并保持顺序?

    如果是一个包含数字列表,我们要对它进行去重同时保持剩余数据顺序,可以使用集合来实现: a = [2, 1, 6, 3, 2, 7, 6]dup = set()a_uni = []for element...然而,数字之所以可以放进集合里面,是因为数字是 hashable对象。在Python中,所有不可变对象都是 hashable,例如数字、字符串、元组。而列表和字典不是 hashable。...为了解决这个问题,我们需要把字典转换为 hashable对象,此时方法有很多种,其中一种是使用 json.dumps把字典转换为JSON格式字符串。...在Python 3.6之前,由于字典顺序是不确定,所以同一个字典,转换为JSON以后可能会出现顺序不一致情况,这就会导致两个实际上相等字典转成JSON字符串以后不相等。...移除包含 hashable元素列表,就可以使用JSON字符串来辅助去重: import jsona = [ {'name': 'kingname', 'salary': 99999},

    1.2K30

    求求你别在用IF ELSE校验参数了

    @AssertFalse 被注释元素必须为 false @Min(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对...,值必须大于等于指定value值 @Max(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对,值必须小于等于指定value...被注释元素必须是电子邮箱地址 @NotBlank 验证字符串null,且trim后长度必须大于0 @NotEmpty 适用于String、Collection、Map或者数组不能为Null且长度或元素个数必须大于...标准校验注释字符串必须是一个有效url @Range 被注释元素必须在合适范围内,应用于数值或字符串 @UniqueElements 检查带注释集合是否只包含唯一元素。...或者数组,不能为Null且长度或元素个数必须大于0 @NotBlank:验证字符串null,且trim后长度必须大于0 @Validated与@Valid区别: @Validated注解是spring

    1.8K20

    Validator,就来这一篇吧

    @AssertFalse 被注释元素必须为 false @Min(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对...,值必须大于等于指定value值 @Max(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对,值必须小于等于指定value...被注释元素必须是电子邮箱地址 @NotBlank 验证字符串null,且trim后长度必须大于0 @NotEmpty 适用于String、Collection、Map或者数组不能为Null且长度或元素个数必须大于...标准校验注释字符串必须是一个有效url @Range 被注释元素必须在合适范围内,应用于数值或字符串 @UniqueElements 检查带注释集合是否只包含唯一元素。...或者数组,不能为Null且长度或元素个数必须大于0 @NotBlank:验证字符串null,且trim后长度必须大于0 @Validated与@Valid区别: @Validated注解是spring

    2.7K10

    springboot自动判定

    Spring Boot 参数校验 前言 搭建springboot项目,我们都是采用Restful接口,那么问题来了,当前端调用接口或者是其他项目调用时,我们不能单一靠调用方来控制参数准确性,自己也要对一些...方案 按照我们以往做法,都是对request中参数一个一个进行判定。...@Length 被注释字符串大小必须在指定范围内 17. @NotEmpty 被注释字符串必须 18....(max,min) 限制字符长度必须在min到max之间 @Past 验证注解元素值(日期类型)比当前时间早 @NotEmpty 验证注解元素值不为null且不为(字符串长度不为0、集合大小不为...0) @NotBlank 验证注解元素值不为(不为null、去除首位空格后长度为0),不同于@NotEmpty, @NotBlank只应用于字符串且在比较时会去除字符串空格 @Email 验证注解元素值是

    3.9K10

    求求你别在用IF ELSE校验参数了

    @AssertFalse 被注释元素必须为 false @Min(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对...,值必须大于等于指定value值 @Max(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对,值必须小于等于指定value...被注释元素必须是电子邮箱地址 @NotBlank 验证字符串null,且trim后长度必须大于0 @NotEmpty 适用于String、Collection、Map或者数组不能为Null且长度或元素个数必须大于...标准校验注释字符串必须是一个有效url @Range 被注释元素必须在合适范围内,应用于数值或字符串 @UniqueElements 检查带注释集合是否只包含唯一元素。...或者数组,不能为Null且长度或元素个数必须大于0 @NotBlank:验证字符串null,且trim后长度必须大于0 @Validated与@Valid区别: @Validated注解是spring

    1.9K10

    求求你别在用IF ELSE校验参数了

    @AssertFalse 被注释元素必须为 false @Min(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对...,值必须大于等于指定value值 @Max(value) 被注释元素可以是字符串、数值类型,如果元素字符串类型,将值转为BigDecimal类型,并与value属性进行比对,值必须小于等于指定value...被注释元素必须是电子邮箱地址 @NotBlank 验证字符串null,且trim后长度必须大于0 @NotEmpty 适用于String、Collection、Map或者数组不能为Null且长度或元素个数必须大于...标准校验注释字符串必须是一个有效url @Range 被注释元素必须在合适范围内,应用于数值或字符串 @UniqueElements 检查带注释集合是否只包含唯一元素。...或者数组,不能为Null且长度或元素个数必须大于0 @NotBlank:验证字符串null,且trim后长度必须大于0 @Validated与@Valid区别: @Validated注解是spring

    1.7K20

    spring 注解验证@NotNull等使用方法

    常用标签 @Null 被注释元素必须为null @NotNull 被注释元素不能为null @AssertTrue 被注释元素必须为true @AssertFalse 被注释元素必须为false...@Email 被注释元素必须是电子邮件地址 @Length 被注释字符串大小必须在指定范围内 @NotEmpty 被注释字符串必须 @Range 被注释元素必须在合适范围内 example...org.springframework.format.annotation.DateTimeFormat; /**** imports ****/ public class ValidatorPojo { // 判断.../*** * 解析验证参数错误 * @param vp —— 需要验证POJO,使用注解@Valid 表示验证 * @param errors 错误信息,它由Spring MVC通过验证POJO后自动填充...} else { // 字段错误 key = oe.getObjectName();// 获取验证对象名称

    60910

    一坨一坨 ifelse 参数校验,终于被 SpringBoot 参数校验组件整干净了!

    正则表达式说明: ^string : 匹配以 string 开头字符串 string$ :匹配以 string 结尾字符串 ^string$ :精确匹配 string 字符串 (^Man|^Woman...使用 Postman 验证 ? ? 验证 Service 中方法 我们还可以验证任何 Spring Bean 输入,而不仅仅是 Controller 级别的输入。...输出结果如下: name 不能为 sex 值不在可选范围 Validator 编程方式手动进行参数验证 某些场景下可能会需要我们手动校验并获得校验结果。...=) 验证字符串 null,且长度必须大于 0 @Email 被注释元素必须是电子邮箱地址 @Length(min=,max=) 被注释字符串大小必须在指定范围内 @NotEmpty 被注释字符串必须...我这里简单回答一下: @NotNull是 JSR 303 Bean 验证批注,它与数据库约束本身无关。 @Column(nullable = false) : 是 JPA 声明列为方法。

    1.6K60

    如何在 SpringSpring Boot 中优雅地做参数校验?

    ")); } 使用 Postman 验证 [20210421190508416.png] [20210421190810975.png] 验证 Service 中方法 我们还可以验证任何 Spring...JSR 提供校验注解: @Null 被注释元素必须为 null @NotNull 被注释元素必须不为 null @AssertTrue 被注释元素必须为 true @AssertFalse 被注释元素必须为...被注释元素大小必须在指定范围内 @Digits (integer, fraction) 被注释元素必须是一个数字,其值必须在可接受范围内 @Past 被注释元素必须是一个过去日期 @Future...=) 验证字符串 null,且长度必须大于 0 @Email 被注释元素必须是电子邮箱地址 @Length(min=,max=) 被注释字符串大小必须在指定范围内 @NotEmpty 被注释字符串必须...我这里简单回答一下: @NotNull是 JSR 303 Bean 验证批注,它与数据库约束本身无关。 @Column(nullable = false) : 是 JPA 声明列为方法。

    2K10

    Spring 注解验证-关于@Valid

    在我们做spring mvc项目的时候,经常要对Controller中传入实体内容进行验证,费时还费力,SO,spring mvc 验证参数注解@Valid 注解,更方便了我们专注于业务处理 官方参考地址...模版里提供类中多了3个注解,其中@NotNull 是针对下面的参数不能为,如果为,会抛出 javax.validation.constraints.NotNull.message 而@Size 很容易理解...中,要验证实体记得一定要加 @Valid 使我们注解生效 在验证我们参数时候,如果不加 BindingResult bindingResult会抛出异常,我们可以根据 BindingResult...@NotBlank(message =) 验证字符串null,且长度必须大于0 很适合String 参数验证 @Email 被注释元素必须是电子邮箱地址 @Length(min=...,max=) 被注释字符串大小必须在指定范围内 @NotEmpty 被注释字符串必须 @Range(min=,max=,message=) 被注释元素必须在合适范围内

    3.6K20

    你需要了解都在这里!

    下面我会通过实例程序演示如何在 Java 程序中尤其是 Spring 程序中优雅地进行参数验证。...NotBlank(message =) 验证字符串null,且长度必须大于0 @Email 被注释元素必须是电子邮箱地址 @Length(min=,max=) 被注释字符串大小必须在指定范围内...@NotEmpty 被注释字符串必须 @Range(min=,max=,message=) 被注释元素必须在合适范围内 验证Controller输入 验证请求体(RequestBody...但是在 Spring Component 类中使用这种方式的话,只能通过工厂类来获得 Validator。...搞清楚这个还是很重要! @NotNull是 JSR 303 Bean验证批注,它与数据库约束本身无关。 @Column(nullable = false) : 是JPA声明列为方法。

    1.3K50

    【原创】关于Spring参数校验一点思考

    下面我会通过实例程序演示如何在 Java 程序中尤其是 Spring 程序中优雅地进行参数验证。...=) 验证字符串null,且长度必须大于0•@Email 被注释元素必须是电子邮箱地址•@Length(min=,max=) 被注释字符串大小必须在指定范围内•@NotEmpty 被注释字符串必须...•@Range(min=,max=,message=) 被注释元素必须在合适范围内 验证Controller输入 验证请求体(RequestBody) Controller: 我们在需要验证参数上加上了...")); } 验证 Service 中方法 我们还可以验证任何Spring组件输入,而不是验证控制器级别的输入,我们可以使用@Validated和@Valid注释组合来实现这一需求。...但是在 Spring Component 类中使用这种方式的话,只能通过工厂类来获得 Validator。

    97310
    领券