问题标签 [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 投票
2 回答
952 浏览

java - 如何对整数值使用@Digits 验证

我想验证传入的数字是否是整数值(没有分数),介于 0 和 100 之间。

我有 javax.validation 注释的 dto:

Dto 在@RestController 类中用作输入方法(@PostMapping)参数。

@Min 和 @Max 工作正常,但 @Digits 不行。当我发送数字时,例如 95.5,它会转换为 95 并引发任何异常。为什么@Digits 不检查它?

0 投票
2 回答
90 浏览

java - 我可以使用在 javax.validation.constraints.Max 中的 application.yml 中定义的自动装配变量吗?

这是一个相当小众的问题,但希望有人知道答案:

我有一个带有 GetMapping 的 SpringFramework RestController,它使用 javax.validation 注释进行了一些参数验证。我想使用在 application.yml 中定义的属性作为 url 参数的最大值,但是我得到编译器错误,即该变量应该是一个常量。见代码:

应用程序.yml:

在@Max(value = maxWaitMillis,它说 maxWaitMillis 应该是常量,因为我猜注释中的检查是在构造函数从 application.yml 获取值之前完成的。

如果我检查maxWaitMillis构造函数或方法体中的值,它的值确实是 5000。

有谁知道是否有办法在验证注释中使用 application.yml 中的值?

谢谢!

0 投票
0 回答
185 浏览

java - javax.validation @NotBland 和 lombok @NonNull 的工作

我有一个简单的 User 类,它的属性用 @NotBland 和 lombok @NonNull 注释。

我对此的期望是,当我尝试在地址字段中设置空白时,它会在编译时通知我或至少在运行时崩溃。Lombok @NonNull 正在以这种方式工作,并在运行时提高 NPE。

我写了下面的测试来检查这个

但是用户是地址为空的有效用户对象。显然我可以使用以下代码在我的测试中检查验证

但我不能这样做或想在我的实际代码库中编写这种类型的代码。所以我的问题是,如果我们将属性设置为空字符串,而根据 set 注释不应该如此,那么如果 @NotBlank 在编译或运行时不会引发任何错误,那么它的用途是什么。

0 投票
1 回答
211 浏览

spring-boot - 无效的表单输入会抛出 Bad Request 而不进入 springboot 控制器的方法。怎么处理?

我有一个带有经过验证的表单参数的控制器:

该表单包含一个具有验证规则的输入字段:

当我尝试通过将 id 字段留空来对其进行测试时,它会抛出 BAD REQUEST 并且甚至不会进入控制器的方法(我试图调试它)。日志说以下内容:

2021-01-17 20:32:51.705 调试 20412 --- [nio-8080-exec-2] swsmmaRequestMappingHandlerMapping:映射到 com.fiserv.report.generator.controller.ReportController#homeSubmit(HomeFormInput, Model, BindingResult) 2021- 01-17 20:32:51.789 调试 20412 --- [nio-8080-exec-2] .wsmmaServletInvocableHandlerMethod:无法解析公共 java.lang.String com.fiserv.report.generator.controller.ReportController 中的参数 [0] .homeSubmit(com.fiserv.report.generator.model.HomeFormInput,org.springframework.ui.Model,org.springframework.validation.BindingResult): org.springframework.validation.BeanPropertyBindingResult: 1 对象'homeFormInput'上的错误字段错误字段'输入':拒绝值[];代码 [NotEmpty.homeFormInput.input,NotEmpty.input,NotEmpty.java.lang.String,NotEmpty]; 论据 [org.springframework.context.support。DefaultMessageSourceResolvable: 代码 [homeFormInput.input,input]; 论据 []; 默认消息[输入]];默认消息 [您必须提供至少一个测试计划 ID] 2021-01-17 20:32:51.791 WARN 20412 --- [nio-8080-exec-2] .wsmsDefaultHandlerExceptionResolver : 已解决 [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult:1 个错误字段“输入”上的对象“homeFormInput”中的字段错误:拒绝值 [];代码 [NotEmpty.homeFormInput.input,NotEmpty.input,NotEmpty.java.lang.String,NotEmpty]; 参数 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码 [homeFormInput.input,input]; 论据 []; 默认消息[输入]];默认消息 [您必须提供至少一个测试计划 id]] 2021-01-17 20:32:51.791 DEBUG 20412 --- [nio-8080-exec-2] osweb。

如何让它进入处理验证错误的方法?

0 投票
1 回答
335 浏览

java - 在控制器 springboot 外使用 javax.validation

我正在尝试使用 javax.validation 验证控制器外部的类并生成 MethodArgumentNotValidException 类型的异常。我查看了以下论坛,但到目前为止它们没有帮助:
在 Spring MVC 之外手动调用 Spring Annotation Validation
Using Spring Validator 在 Spring MVC 上下文之外

我想要实现的是以下

在我的验证类中执行以下操作(不是控制器),传播生成的异常(NotNull、NotEmpty、NotBlank、Pattern 等)

谢谢你的帮助

0 投票
0 回答
48 浏览

java - 我应该抛出什么异常来返回与使用@Valid 时得到的相同的错误请求响应?

我通过 a 手动验证 bean SpringValidatorAdapter,如下例所示:

我想保持错误响应的多样性,并正在寻找类似的东西:

抛出的正确异常是什么?

0 投票
1 回答
105 浏览

java - 在 JBOSS 中找不到约束“javax.validation.constraints.NotEmpty”错误的验证器

我有一个 SpringBoot 版本的“ 2.3.9.RELEAS E”应用程序。

Jboss版本:jboss-eap-7.1

成功地将应用程序部署到jboss。当我尝试通过我的 Web 应用程序登录时,发生了错误。

验证类如下

我已将“jboss-deployment-structure”添加到“WEB-INF”目录。

pom.xml

错误仍然存​​在。一个主意?

它在Netbeans 8.2 + Apache Tomcat中运行良好

0 投票
2 回答
121 浏览

java - 由于 javax.validation 异常导致的 ConcurrentModification 异常

我正面临这个奇怪的问题,其中 api 由于 javax.validation 问题而引发并发修改异常。

堆栈跟踪没有说明 bean 中的哪个验证导致了问题。

0 投票
1 回答
423 浏览

java - 自定义注解可以抛出自定义异常,而不是 MethodArgumentNotValidException?

我有一个 @ExceptionHandler(MethodArgumentNotValidException.class) 在验证失败时返回 HTTP 代码 400。我创建了一个自定义注释,我需要将 HTTP 代码更改为 422。但是,由于异常处理程序已经用 @ResponseStatus(code = HttpStatus.BAD_REQUEST) 进行了注释,我该怎么做呢?

我认为也许可以使我的自定义注释引发自定义异常然后捕获它。那可能吗?如何?

我的 RestControllerAdvice:

我的自定义注释:

我的验证器:

0 投票
0 回答
68 浏览

java - 如何绕过第三方库中的 javax.validation.constraints.Min 错误?

当我加载一个第三方类时,我遇到了关于在非 getter 方法上使用 javax.validation.constraints.Min 的异常。我不关心那个方法,我想知道如何关闭检查,让我按原样使用其余的功能?

检查来自: io.airlift.bootstrap 与 Guice 一起使用时

谢谢。