问题标签 [spring-validator]
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 - java.lang.ClassNotFoundException: javax.validation.ValidatorFactory
我正在使用 hibernate-validator-5.2.2.Final jar 进行 spring 验证。当我在类路径中添加 validation-api-1.1.0.Final jar 文件时,会发生此异常:
我的模型类是:
我的控制器:
请让我知道是什么问题以及如何解决它,我已阅读有关此问题的各种教程和错误但无法理解。
annotations - Spring 自定义验证器不工作
我正在尝试创建自定义验证器,以仅验证表单中字段的数字。
OnlyNumber.java(注解)
OnlyNumberValidator.java(验证器)
用户.java (Pojo)
添加了验证依赖项:
项目详情: - Spring Boot 1.3.1
当我运行应用程序时,我在 jsp 上收到错误消息,提示无法将类型“java.lang.String”的属性值转换为属性“roleId”所需的类型“java.lang.Long”;嵌套异常是 java.lang.NumberFormatException: For input string: "a"
相反,当我检查登录自定义验证器的 isValid 方法时,我应该收到自定义错误消息Role Id Can be Only Number ,我在该方法中的参数为 null 。
可能是配置有问题或者我遗漏了什么
spring-mvc - 嵌套异常是 java.lang.NoClassDefFoundError: 无法初始化类 org.hibernate.validator.internal.engine.ConfigurationImpl
当我@NotNull
@NotEmpty
在 getParam 中实现注释验证器时,它的原因错误是:
使用hibernate-validator-5.2.2.jar
Tomcat 8.0
spring-4.2.3.jar
当我导入 javax.validatorvalidation-api-1.1.0.jar [JSR-349]
导致此错误时,
当我删除@NotNull
@NotEmpty
并validation-api-1.1.0.final
正常工作时。
validation-api-1.1.0.final
当我没有导入时@NotNull
@NotEmpty
出现此错误
我尝试从其他来源下载并导入validation-api-1.1.0.final
我也遇到了与上述相同的错误。
我org.hibernate.validator.internal.engine.ConfigurationImpl
在hibernate-validator-5.2.2-Final.jar
servlet可能的 bean 配置缺少什么?
导入库
- hibernate-validator-5.2.2.Final.jar
- hibernate-validator-annotation-processor-5.2.2.Final.jar
- hibernate-validator-cdi-5.2.2.Final.jar
- javax.el-api-3.0.0.jar
- jboss-logging.jar
- spring-context-4.2.3.RELEASE.jar
- spring-beans-4.2.3.RELEASE.jar
- 验证-api-1.1.0.final.jar
- classmate-1.3.1.jar
- slf4j-jdk14-1.7.13.jar
参考
- hibernate-validator 中的异常。嵌套异常是 java.lang.NoClassDefFoundError: ConfigurationImpl
- Javax 验证
- http://central.maven.org/maven2/org/hibernate/hibernate-validator/5.2.2.Final/hibernate-validator-5.2.2.Final.pom
- http://docs.jboss.org/hibernate/validator/5.2/reference/en-US/pdf/hibernate_validator_reference.pdf
java - 类级别 bean 验证中的当前组
我在 bean 中有一些组验证:
还有这些方法:
我如何在验证器类中知道当前正在验证哪个组?
我需要根据当前组验证对成员进行验证,例如,如果 DatosGenerales 组正在验证,则仅使用与其相关的成员。
spring - 为什么类Validator的Autowire不工作但为GeneralValidator工作?
我在我的 java 类中遇到了一个奇怪的行为,想了解这种行为的原因是什么,因为在线调查没有得到与我的情况类似的结果,我不得不问。
我使用 Spring Framework 的 java 程序有一个名为 的类Validator
,它的定义如下:
@Autowired
现在,在我的代码中的许多其他地方,我使用带有注释的此类,例如:
当我尝试启动我的服务时,我.war
失败并出现错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.company.common.validators.Validator]
但是,如果我像这样将名称添加到@Component
注释中:
它工作得很好。
为什么我必须在@Component
注释中声明验证器类的名称,当它是相同的名称时?我注意到,如果我将班级名称更改为其他任何名称,例如:GeneralValidator
它可以正常工作而无需在@Component
.
spring - 数据库中的 Spring Rest Url ID 验证 - 例如:university/{universityId}/campuses/{campusId}/buildings
我想知道如何验证我的 Rest API 路径 ID 的最佳实践。
例如:
当我执行 GET 检索建筑物时,我需要先验证 {universityId} 和 {campusId} 是否确实有效(存在于数据库中),然后再继续。
现在我已经实现了一个自定义 RepositoryValidation,它通过抛出 ResourceNotFoundException() 来提供这些功能,并且在我的服务类中为 GET、PUT、POST..etc 调用这些方法
有没有更好的方法来进行验证?我已阅读有关拦截器或过滤器的信息,但不确定这是否是最佳做法。
自定义例外:
存储库验证:
服务:
java - 将 @Validated 和 @Valid 与 spring 验证器一起使用
我有一个 java bean 用于将 JSON 消息发送到 spring @RestController
,并且我有 bean 验证设置并且使用@Valid
. 但我想转移到 Protobuf/Thrift 并远离 REST。它是一个内部 API,许多大公司已经在内部取消了 REST。这真正意味着我不再控制消息对象——它们是在外部生成的。我不能再给它们添加注释了。
所以现在我的验证必须是程序化的。我该怎么做呢?我已经编写了一个代码Validator
,它工作得很好。但它不使用 nice@Valid
注释。我必须执行以下操作:
这很臭。我必须在每一种方法中都这样做。现在,我可以将其中的很多内容放入一个抛出的方法中BindException
,这样就可以将一行代码添加到每个方法中。但这仍然不是很好。
我想要的是看到它看起来像这样:
并且仍然得到相同的结果。请记住,我的 bean 没有注释。是的,我知道我可以@InitBinder
在方法上使用注释。但这仅适用于 Web 请求。
我不介意将正确的Validator
注入此类,但如果我的 ValidatorFactory 可以根据该supports()
方法提取正确的,我更愿意。
这可能吗?有没有办法将 bean 验证配置为实际使用 Spring 验证?我必须在某个地方劫持一个方面吗?侵入LocalValidatorFactory
或MethodValidationPostProcessor
?
谢谢。
java - 应用程序级数据库约束转发:如何自动使用 JDBC 和 Spring
我希望能够从本质上反省我的所有实体都绑定到的模式的细节,并将其转发到应用程序层进行验证,这样我就不会将数据(从而浪费资源)提交给将最终被拒绝。
例如:
我可以清楚地看到我可以自己实现这个,但我假设在伟大的世界的某个地方有一个 bean/validator 可以为我完成这项工作。
spring - 当对象为空而对象不存在时,请求 PATCH 的正文验证
我在这里遇到的问题是 HTTP PATCH 方法,因为它允许部分更新。
我有一个如下的请求正文。
用于请求映射的 Bean:-
检查枚举是一个自定义注释,用于验证传递的值是否与 enumValue 列表中的元素之一完全匹配。
我面临的问题是以下两个请求。
在上述请求中,userAssociationStatus不存在,因此由于它是一个 PATCH,我将忽略它并仅更新其他状态。
下一个请求是
在这种情况下,我想抛出未找到的枚举,因为请求中的对象是空的。
在上述两个请求中,当字段等于 null 时,当字段不存在时,userAssociationStatus等于 null。所以我无法从请求的角度区分正在发生的事情。
问题是如何区分不存在的字段和作为 null 传递的值。
如果需要,可以提供更多信息。
java - 方法参数的@Pattern 注解
我正在尝试验证作为方法参数一部分的 emailId 和其余端点的查询参数。在方法参数中使用 @Pattern 注释不起作用。有没有更好的方法来使用注释来处理这种情况
我尝试了上述方法,但它不起作用。因为电子邮件 ID 字段是查询参数,所以我无法将其包装在对象中并在其上添加验证器。
我尝试将它包装在一个包装器对象中,如下所示,但没有运气
EmailId 包装类
}
在这种情况下,我得到一个 conversionnotsupported 错误,这很明显,因为 url 参数是一个字符串并且我正在分配给一个对象。