问题标签 [javax.validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
518 浏览

java - Spring验证:类属性VS构造函数参数中验证注解的区别

我有以下模型对象:

在此类Message中,每个字段都使用验证约束进行注释。此外,每当我在IDEA IDE 中自动生成构造函数时,注释也会自动附加到构造函数参数中。

我的问题是:如果我从构造函数参数字段/对象属性中删除这些约束,会有任何副作用吗?

这些验证在内部如何运作?

javax.validation.Validator::validate用于验证。

如果可能,请附上链接作为参考

0 投票
1 回答
117 浏览

java - 使用 Java Bean 验证验证对象图/集合时的自定义消息

遵守以下代码。DealerLot 有一个 carInventory,它由汽车组成,所有汽车都包含一个引擎。当前dealerlot 有两辆汽车在库存中,并且在验证时,汽车的一个引擎未能通过验证。但是,错误消息仅包含有关引擎的信息。在消息中包含 carName 的最干净的方法是什么?

输出:

我希望输出看起来像下面这样:

如果没有这种清晰程度,确定哪些汽车有问题可能会非常混乱。

仅供参考,这些是我在示例中使用的依赖项的版本:

0 投票
1 回答
913 浏览

java - 如何在 JUnit 中验证静态方法的参数?

我有一个带有参数和约束的静态方法。我想运行一些单元测试,但是当我调用 executableValidator.validateParameters 时,没有引发违规问题(应该是)

我运行了一些反射代码,并在日志中正确显示了验证注释。

我的类使用静态方法:

约束界面:

验证器类:

和我的测试:

在最后一部分:

违规大小应等于 2,但等于 0。

我还有一个 RestController 使用顶部带有 @Validated 注释的方法,在这种情况下它正在工作。所以当我运行这个单元测试时,我正在等待同样的行为。

我的错误是什么?谢谢

0 投票
1 回答
210 浏览

java - 如何对集合类型的元素应用验证

我正在使用弹簧,因此javax.validation,这就是这个问题的背景。

假设我想验证一个列表的元素只包含 4 位数字。

我想编码:

@Min但是验证会爆炸并抱怨它@Max不能用于验证List. 好的,有道理。

我可以@Valid在自定义对象列表中使用,例如:

但我只想使用Integer(以及最终其他盒装原语、字符串等),例如:

我可以在不创建任何自定义类或自定义验证注释的情况下执行此操作吗?

0 投票
1 回答
438 浏览

java - 是否可以将 javax.validation 注释添加到以超类型声明的属性?

我想为属性定义一个具有标准化名称的抽象属性类。这样,所有继承的属性都将声明具有相同名称模式的属性。

在一个子类上,我希望能够在其中一些属性上添加 javax.validation.notNull 注释。

可能吗 ?我看到有一个用于覆盖超类型注释的开放票,这意味着无法覆盖它们,但在这里我想添加注释。

0 投票
1 回答
11 浏览

spring-security - 有没有办法为个人消费者实现对 spring-cloud 消息的自定义验证?

我在 spring-cloud 环境中工作。该公司已决定将所有通用代码提取到一个通用模块 (.jar) 中,以作为对所有应用程序的依赖项添加。所有应用程序都是公共消息的消费者。我的任务是想出一种在每个单独的应用程序上验证此消息的方法,因为该消息将具有不同的验证要求,具体取决于哪个应用程序接收它。例如,假设我们有一条关于汽车的消息。如果有问题的汽车是福特 F-150,它将有牵引能力的验证要求,而本田思域将有燃油节省的验证要求。所以进来的消息会放在公共模块中的一个对象上,有没有办法为每个单独的应用程序创建自定义的类级验证?我现在遇到的问题是我无法声明validatedBy@constraint运行时注释上的类。有没有人遇到过这个问题?有谁知道如何为公共 jar 文件中的对象创建自定义验证?提前致谢。

一些额外的信息。我还应该提到,我考虑这样做的原因是因为控制一辆车验证的团队并不总是控制另一辆车验证的团队。这就是为什么我试图找到一种方法来保持验证存在于特定应用程序中,而不是常见的包含 jar。

0 投票
0 回答
324 浏览

spring-boot - 为什么 @Valid 注释在服务方法参数中使用时不起作用但适用于控制器方法?

我正在上这UserDto门课,我想上课@Valid

我有一些要求,我不能对控制器方法进行验证,但我需要在服务方法上进行验证。

但这不起作用。如果我@Valid使用控制器方法,我确实会得到预期的验证错误。

为什么这样?序列化/反序列化与valition有关吗?

0 投票
2 回答
990 浏览

spring-boot - 如果对象列表中的字段值重复,是否有 java validate 的注释?

我有一个对象列表,每个对象都有一封电子邮件,我想验证电子邮件是否在此列表中重复。

父亲会有一份孩子的名单:

每个孩子都会收到一封电子邮件:

例如,我想验证是否有一个带有 2 个孩子的请求正文具有相同的电子邮件。

是否有可能或仅在接收和处理有效负载后进行验证?

0 投票
2 回答
1967 浏览

java - 在 1 步中验证请求正文和请求参数?

使用 spring boot 和 javax.validation(不是 spring 验证)验证对 REST 端点的 put 调用的问题。

您在资源中有以下方法:

当我调用该方法时,myBody会得到验证,并 MethodArgumentNotValidException在我的异常处理程序中得到一个。但是参数没有id得到验证!

只有当myBody有效时,id才会被验证。

我找到的唯一解决方案是不使用@Valid,并自己实施身体的验证。

有更好的解决方案吗?

TIA 基布

0 投票
1 回答
1499 浏览

java - javax.validation.ValidationException:HV000028:测试中 isValid 期间出现意外异常

我不知道如何为自定义约束验证器编写单元测试。我有以下验证器类:

Validator 由以下注释使用:

SchoolService是一个使用 ApiClient 调用 School Api 的类,ApiClient 是一个具有通用 restTemplate 请求的通用类:

最后是学生课:

当我运行该应用程序时,它可以完美运行。但是,它根本不适用于以下 Test 类:

当它进来的时候SchoolIdValidator schoolService总是null。因此,它总是在 SchoolIdValidator.isValid 上抛出 NPE。如果有人有解决方案,那将非常有帮助。

感谢您的阅读和帮助。