在JSF2中使用bean验证(JSR 303) - Primefaces应用程序

时间:2012-06-14 14:59:26

标签: jsf netbeans annotations primefaces bean-validation

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

在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文件。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

Not getting JSR303 annotations to work with Tomcat 7