问题标签 [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.
spring - 如何在 org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl 类中排除使用 basePath
由于我无法控制的原因,我不得不在服务层使用验证。
该类看起来像这样:
我正在使用 javax.validation.ConstraintValidator 进行自定义验证
问题是由于创建了 ConstraintValidatorContextImpl,方法和类型参数的名称出现在私有 final PathImpl basePath 字段中:createMethod.arg0,因此,错误字段如下所示:createMethod.arg0.name。
如何排除使用方法名和参数名。谢谢
java - 为我的 DTO 构建复合唯一约束
我正在尝试为我的 Java/Spring Boot REST API 构建一个 ConstraintValidator。
问题是:我必须将一个国家和一个州/省保存到数据库中,但一个国家不能有两个同名的州/省。
所以我设置了我的域类:State.class,带有来自 javax.persistence 的 @UniqueConstraint,当对象到达我的数据库时它工作得很好,但是我想让它更安全并构建这个 ConstraintValidator 来为我的请求 DTO 做同样的事情,我称之为 StateRequestDto.class。
由于我喜欢尝试使东西通用化,因此我正在尝试构建一个通用的多重约束验证器,例如,您在 DTO 类上使用,传递您希望唯一的参数组合并使用实现 ConstraintValidator 的类,构建一个 JPQL查询注解上的参数组合是否已经存在。
这是我的 StateRequestDto.class
还有我的 UniqueCombo 注释:
java - 使用列表验证请求作为带有 javax.validation 的字段
我javax.validation
用于验证使用 spring 开发的 API 中的请求。
我必须进行验证List<Integer>
,以便所有值都必须是正数,并且列表的大小必须完全等于某个固定数字,例如 2。
有效请求应该是 [1,2]
无效请求应为 [-1,2] 或 [1,2,3]
java - 如果两个或多个注释满足同一字段上的条件,Javax 验证不稳定
当我应用两个验证注释并且在某些特定情况下都检查相同的条件时,我观察到一个问题,javax 验证输出不稳定。这是代码示例:
在上面的代码ValidDate
中是一个自定义注释,它检查给定日期是否有效以及不为空,并NotBlank
检查空、非空。
因此,如果日期为空,则两者都返回 true,并且消息响应在 Date Missing 和 Invalid Date 之间切换
有什么方法可以停止这种切换并且只能将 NotBlank 用于 null 情况?
java - Spring中如何设置@NotEmpty注解消息?
在 Java(+ Spring Boot)项目中,有一个使用javax.validation
如下所示的符号:
我看了一下它们的用法,但有些地方我无法理解:
1.是否有特殊用途,例如条件消息显示validation.username.password
?例如,如果用户名字段为空,则显示此消息?还是和领域完全一样product
?
2.我搜索项目,但找不到validation.product.notEmpty
或validation.username.password
。那么,它们是如何工作的呢?我认为这些消息应该有一个定义,但是我没有找到,它来自默认消息javax.validation
吗?
spring-boot - 强制验证注解提供消息
我正在使用休眠验证器进行 POJO 验证,并且我还创建了一些自定义验证器。这是一个例子:
我们需要使用特定代码而不是消息来表示所有验证错误。为了实现这一点,我们决定在我们使用的每个注释中指定代码。上面的例子现在看起来像这样:
但是我们对这种方法有一个问题。我们不能强制在注释中始终提供消息(在我们的例子中是错误代码)。对于自定义注释,它仍然可以,因为我们不提供默认消息,但对于标准注释,有机会错过它,如果我们不小心错过提供自定义消息,则会静默生成字符串消息。
有没有办法强制在注释中始终提供消息。保持一定的一致性可能会有所帮助。
java - 如何在 javax.validation 注释中使用 application.properties 值
我有一个notification.max-time-to-live
在application.yaml
文件中调用的变量,并希望将其用作javax.validation.constraints.@Max()
注释的值。
我已经尝试了很多方法(使用 env.getProperty()、@Value 等),它说它必须是一个常量值,有没有办法做到这一点?
spring - 为什么我们必须在覆盖默认方法时重新定义 javax.validation.constraints?
我们使用 openapi-generator 生成 Spring 代码。然后我们通过实现 API 接口来构建控制器并覆盖生成的默认方法。
我总是想知道为什么我们必须重新定义 javax.validation.constraints?是否有防止这种情况的选项,以便始终使用生成的接口上的那些?
我更喜欢简单地覆盖这些方法而不再次定义它们。我还想强制执行所有验证。现在我可以跳过其中一个的复制/粘贴,然后界面对规范无效。
java - 如何通过组合 2 个字段来使用 @NotEmpty?
我有以下要求。
我将此请求用于 2 种不同的方法,它们都只使用一个字段,不需要另一个字段。假设这个请求中的methodA usingcode
和methodB usingname
字段(不需要其他字段)。所以,在这个场景中,我认为一种解决方案是对两种方法使用相同的请求,而不是创建两个单独的请求。那么,有什么东西可以使字段之一不为空吗?我也不确定它是否能解决我的问题,因为在这个场景中,请求将不知道哪个属性不应该为空。任何想法来解决这个问题?
java - javax验证问题以获取分配字段的错误消息
您好,我是 Java 初学者,使用 SpringBoot 验证 javax 时遇到问题。我创建了自己的 ExceptionHandler 来处理验证异常:MethodArgumentNotValidException
当请求无效时抛出。
无效的 JSON 请求示例:
控制器:
}
带有 javax 验证注释的类:
}
我的处理程序中的方法:
错误消息类:
我想要实现的是获得每个字段的嵌套验证错误,如下例所示:
我在这一点上得到了什么:
正如您所看到的,代码和名称键在这两个字段中都出现验证错误,这是错误的 :) 我将不胜感激任何帮助 :)