1

我正在尝试将使用休眠验证器的 bean 验证集成到我的 Web 应用程序中:
- 在 tomcat 7 上的 Hibernate-spring-jsf2-primefaces3
我添加了以下 jar 文件: hibernate-validator.jar 和 validation-api.jar 到我在 Netbeans 中的类路径中。

在 pojo 类中,我为 Size 添加了注释:

@Size(min=4, message="Min 4 chars!")
private String name;

在我写的 .xhtml 页面中:

<p:inputText title="name" id="name" value="#{myBean.user.name}"></p:inputText>
<p:message for="name" />

运行我的应用程序并在名称字段中输入少于 4 个字符后,我看不到任何消息,处理继续并将数据保存到数据库。在我看到的日志输出中:

14 juin 2012 14:55:03 org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate shouldAddEnclosingValidator
ATTENTION: Bean validation is not available on the classpath, thus the BeanValidator will not be added for the component org.primefaces.component.inputtext.InputText@1f3fd22
14 juin 2012 14:55:04 javax.faces.component._ExternalSpecifications isBeanValidationAvailable
INFO: MyFaces Bean Validation support disabled

我想知道是否有任何我必须设置的配置,或者我必须添加的任何 jar 文件。

4

2 回答 2

2

解决了,
我必须添加所需的 jar 文件:jboss-logging-3.1.0.CR2.jar从 hibernate-validator zip 文件到 lib 目录。
我认为 log4j 足以记录日志,但我错了。

于 2012-06-15T10:24:19.657 回答
0

这个问题之前已经回答过了。

如果要使用 bean 验证,则需要 Java EE 容器。Tomcat 只是一个 servlet 容器,因此您需要额外的库。

没有让 JSR303 注释与 Tomcat 7 一起使用

于 2012-06-15T07:25:51.223 回答