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

2024-05-22

我有一个模型类,其中包含字符串列表。该列表可以为空,也可以包含元素。如果它有元素,这些元素不能为空。举个例子,假设我有一个名为 QuestionPaper 的类,它有一个 QuestionId 列表,其中每个都是一个字符串。

class QuestionPaper{
private List<String> questionIds;
....
}

论文可以有零个或多个问题。但如果有问题,id值不能为空字符串。我正在使用 SpringBoot、Hibernate、JPA 和 Java 编写一个微服务。我该如何进行此验证。任何帮助表示赞赏。

例如,我们需要拒绝用户的以下 json 输入。

{ "examId": 1, "questionIds": [ "", " ", "10103" ] }

是否有任何开箱即用的方法可以实现此目的,或者我必须为此编写一个自定义验证器。


自定义验证注释应该不是问题:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotEmptyFieldsValidator.class)
public @interface NotEmptyFields {

    String message() default "List cannot contain empty fields";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}


public class NotEmptyFieldsValidator implements ConstraintValidator<NotEmptyFields, List<String>> {

    @Override
    public void initialize(NotEmptyFields notEmptyFields) {
    }

    @Override
    public boolean isValid(List<String> objects, ConstraintValidatorContext context) {
        return objects.stream().allMatch(nef -> nef != null && !nef.trim().isEmpty());
    }

}

用法?简单的:

class QuestionPaper{

    @NotEmptyFields
    private List<String> questionIds;
    // getters and setters
}

附:没有测试逻辑,但我认为它很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring验证非空元素的字符串列表 的相关文章

随机推荐

  • 切换按钮形状不变

    我正在尝试制作一个带有绿色背景的圆形切换按钮 我用了
  • 使用 Google Translate API 获取单词的发音

    我正在尝试将法语单词的发音保存到 wav 或 mp3 文件中 我想知道 Google Translate API 上是否有任何地方 因为它有发音功能 可以让我实现这个目标 其他库也可以工作 自从提出这个问题以来 从谷歌翻译中 抓取 MP3
  • 选择更新后不起作用

    我有一个选择的下拉菜单 我更改了选项内容并调用触发器选择 更新但选择不重建下拉列表 这是我更新的
  • grep 的贪婪行为

    我认为在正则表达式中 贪婪 适用于量词而不是整个匹配 然而 我观察到 grep E color auto a ab lt printf aab returns aab而不是aab 这同样适用于 sed 另一方面 在 pcregrep 和其他
  • python 根据日期创建目录结构

    我使用以下函数根据今天的日期创建目录 usr bin python import time datetime os today datetime date today todaystr today isoformat os mkdir to
  • 如何使用 jest 测试 Web 组件 (lit-element)

    有人有一个很好的设置来使用 jest jsdom 或类似工具测试自定义元素吗 我一直在使用 Puppeteer 和 Selenium 但它们使测试运行速度减慢太多 jsdom 的任何其他替代方案或修复程序可以使下面的测试运行吗 import
  • 如何将 Jekyll 帖子分成两个不同的文件夹?

    我有一个 posts文件夹 我只是想要一种简单的方法将文件夹中的帖子分成两个不同的文件夹 并且出于纯粹的组织原因而没有任何永久链接更改 只需在您的目录中创建子目录即可 posts目录 当 Jekyll 生成永久链接时 子目录将被忽略
  • 如何使复选框不可选择?

    我想知道你是怎么做的CheckBox在c 中无法选择 我认为这会是类似 SetSelectable false 之类的东西 但我似乎看不到该方法 I found CanSelect但这似乎是只读属性 您可以设置自动检查 http msdn
  • Python google云函数部署失败-Madmom pip包

    我正在尝试使用 madmom python pip 包部署 Python3 7 Google Cloud Function 但是指定madmom 0 16 1requirements txt 中的内容导致部署失败 当我从requiremen
  • 如何使用 scipy.odr 估计拟合优度?

    我使用 scipy odr 将数据与权重拟合 但我不知道如何获得拟合优度或 R 平方的度量 有人对如何使用函数存储的输出来获取此度量有建议吗 The res var的属性Output http docs scipy org doc scip
  • 使用来自Processing-JS的JSON

    我想使用编写一个应用程序处理 JS http processingjs org 并且我希望能够使用服务器端数据加载它 我还没有编写服务器端 所以我可以使用任何东西 但似乎明显的 AJAX 事情是使用 JSON 将数据上传到页面中 如何从我的
  • 如何插入包含“&”的字符串

    如何编写包含 字符的插入语句 例如 如果我想将 J J Construction 插入数据库的列中 我不确定这是否有什么不同 但我正在使用 Oracle 9i 我总是忘记这一点 然后又回到它 我认为最好的答案是迄今为止提供的答复的组合 首先
  • @WebServlet 注释不适用于 Tomcat 8

    我想使用 WebServlet在 Tomcat 8 上运行的 Java EE web 应用程序中添加注释 我读到我需要在我的中声明 Servlet 版本 3 1web xml我的 Servlet 需要扩展HttpServlet 我做了所有这
  • 使用自动布局时 UIScrollview 的中心内容

    我在项目中使用自动布局 并且有一个滚动视图 其中有一个居中的按钮 我已经让滚动视图滚动 但不占据整个屏幕 我尝试按照此处的教程进行操作 https developer apple com library ios technotes tn21
  • 从 NDK 获取应用程序名称

    我需要从本机端获取我的 Android 应用程序的名称 如下所示 android content context context android content context this current activiy Resources
  • 重叠的回收和Application_Start

    我有一个使用 AppFabric 进行分布式缓存的 asp net Web 应用程序 在 Application Start 上 我初始化与 AppFabric 的连接 这通常需要几毫秒 这是完全可以接受的 有时可能需要长达30秒连接 在回
  • 在 Android 上提取/修改视频帧

    我有一个视频文件 我想获取视频的每一帧并对帧进行一些修改 例如在其中绘制另一个位图 放置一些文本等 Android 中是否有任何 API 框架可用于从视频中获取帧 我在 iOS 中使用他们的 AVFramework 做了类似的事情 如果可以
  • 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表? [复制]

    这个问题在这里已经有答案了 如何使用命令提示符删除 Windows MySQL 中的所有表 我想这样做的原因是我们的用户有权访问数据库删除 但无权重新创建数据库本身 因此我们必须手动删除表 有没有办法一次删除所有表 请记住 大多数表都与外键
  • 开源机器翻译引擎?

    我们正在寻找一个可以合并到我们的本地化工作流程中的开源机器翻译引擎 我们正在考虑以下选项 Moses http www statmt org moses C Joshua http www computing dcu ie mforcada
  • Spring验证非空元素的字符串列表

    我有一个模型类 其中包含字符串列表 该列表可以为空 也可以包含元素 如果它有元素 这些元素不能为空 举个例子 假设我有一个名为 QuestionPaper 的类 它有一个 QuestionId 列表 其中每个都是一个字符串 class Qu