问题标签 [hibernate-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.

0 投票
2 回答
1732 浏览

hibernate - 尝试在 JBoss 5.1 中使用 hibernate 3.4 但得到 javax.validation.ValidationException: Unable to find a default provider

我在 JBoss 5.1 上使用 Hibernate 3.4 时遇到了一些问题。Hibernate 3.4 是一个 JPA 1.0 实现,所以在 JBoss 5.1 中使用应该没问题。问题是 JBoss 有自己的 Hibernate 版本,它位于 /common/lib 而我不想使用 JBoss 提供的版本。我所做的是从该文件夹中删除了 hibernate-annotations.jar、hibernate-commons-annotations.jar、hibernate-core.jar、hibernate-entitymanager.jar、hibernate-jmx.jar 和 hibernate-validator.jar 并放入我的 Hibernate 3.4 jars 进入 server/default/lib 目录。我还将 hibernate-validator.jar 3.1.0 编译到我的 war 文件中,因为否则 JBoss 似乎无法识别验证器的位置。完成以上所有操作后,我将我的 war 文件打包并部署到 deploy 文件夹。

服务器启动没有问题。但是当我尝试访问我的 Web 应用程序时,它会抛出一个错误:

java.lang.Thread.run(Thread.java:662) 处的 JioEndpoint$Worker.run(JIoEndpoint.java:447) 原因:org.springframework.beans.factory.BeanCreationException:创建名称为“org.springframework”的 bean 时出错。 validation.beanvalidation.LocalValidatorFactoryBean#0':调用 init 方法失败;嵌套异常是 javax.validation.ValidationException: Unable to find a default provider at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:519) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 在 org.

看起来它仍然找不到验证器。但它已经在war文件中。我已经在码头服务器上测试了我的网络应用程序,它运行良好。我在 JBoss 配置中做错了什么?

0 投票
3 回答
17040 浏览

java - spring3 mvc @Valid注解找不到

我尝试使用@Valid 注释,但 Eclipse 总是给出“Valid cannot be resolve to a type”错误。我正在使用 spring3 库。

我已将 hibernate-validator-4.1.0.Final.jar 导入到我的 WEB-INF/lib 目录中。但是,这并不能解决问题。

任何帮助表示赞赏!

0 投票
5 回答
50494 浏览

java - JSR 303:如何验证带注释对象的集合?

是否可以在 JSR 303 - Jave Bean Validation 中验证集合本身没有任何注释但其中包含的元素的对象集合?

例如,这是否可能由于第二个人的空名称而导致违反约束:

0 投票
1 回答
2553 浏览

java - 如何使用 Hibernate Validator 标准化和组织错误消息(在 Spring 框架下运行)

我正在学习休眠验证器。我看到我可以在任何注释中添加错误消息文本。

但这似乎是处理错误消息的不好方法。返回错误消息 ID 并在某些资源文件(如属性文件)中查找消息文本会更简洁。

这样,我以后可以通过换出特定的资源文件来扩展到其他语言;并且错误消息被组织到一个连贯的位置。

使用 Hibernate Validator 的最佳方法是什么?

0 投票
3 回答
15789 浏览

java - Hibernate Validator、自定义 ResourceBundleLocator 和 Spring

我正在尝试覆盖休眠验证 4.1 中的默认 ResourceBundleLocator。到目前为止,它工作得很好,但其用法的唯一示例包括用于实例化 ValidationFactory 的 java 代码。

当使用带有 spring hibernate 验证的 web 应用程序时,会自动配置(只有合适的 hibernate 验证 *.jar 文件应该存在并自动使用)。在那种情况下,我该如何替换 ResourceBundleLocator?我看不到任何在任何属性或 applicationContext.xml 文件中指定我的自定义 ResourceBundleLocator 的方式。

0 投票
1 回答
15774 浏览

spring - 使用带有 Hibernate Validator 的自定义 ResourceBundle

我正在尝试为 Hibernate Validator 4.1 到 Spring 3.0 设置自定义消息源。我已经设置了必要的配置:

翻译是从我的消息源提供的,但似乎在消息源中查找了消息本身中的替换标记,即:

有调用在 messageSource 中查找“prop”。进入ResourceBundleMessageInterpolator.interpolateMessage我注意到javadoc状态:

根据 JSR 303 中指定的算法运行消息插值。

注意:用户包中的查找是递归的,而默认包中的查找不是!

这在我看来就像递归将始终发生在用户指定的捆绑包中,所以实际上我无法翻译标准消息,如 Size 的消息。

如何插入自己的消息源并能够在消息中替换参数?

0 投票
1 回答
6847 浏览

spring - 使用@valid 在哪里/如何自定义错误消息进行春季验证

我正在尝试使用属性文件中的错误消息进行一些弹簧验证。但是我发现的所有示例似乎都具有硬编码的值,或者从属性文件中获取但使用验证器类并在那里检索它。

我的设置有点不同。我在请求映射中使用了@Valid 注释,而我的@Valid 类使用了@NotNull 等。我已经看到了一些人们使用@NotNull(message = "blablabla"); 的例子。但这也是硬编码的,我想把消息放在一个属性文件中,这样我就可以轻松地动态编辑它,这样我将来就可以轻松地实现 i18n。

任何有关如何实现这一目标的意见将不胜感激。

0 投票
2 回答
8070 浏览

spring - 春季验证:无法从字符串转换为日期

我正在做一些春季表单验证,但是我得到了:

但是,在我的 modelAttribute 表单中,我有:

我认为 DateTimeFormat 对此负责?

我正在使用休眠验证器 4.0。

0 投票
1 回答
672 浏览

spring - form:errors 不显示错误列表,但 form:errors path="x" 有效

我正在尝试显示我的表单错误的完整列表。现在我可以做<form:errors path="x"/>几次,但除非我弄错了,否则我应该可以使用<form:errors/>? 但是<form:errors/>没有给我任何输出。

有谁知道为什么会这样(是的,表格:错误在我的表格中:表格)

0 投票
6 回答
33542 浏览

java - 原语集合的休眠验证

我希望能够做类似的事情:

换句话说,我希望列表中的每个项目都被验证为电子邮件地址。当然,像这样注释集合是不可接受的。

有没有办法做到这一点?