验证不适用于我的struts-hibernate应用程序

时间:2016-04-12 19:11:45

标签: hibernate validation struts

我是struts和Hibernate的新手。我正在开发一个用户填写表单的Web应用程序。我必须在某些字段上进行一些验证,我试图在某些字段中使用POJO类中的验证。

@Past on Date@Max on int一样。

但它没有正常工作并抛出这些例外。

HTTP Status 500 validation
failed for: com.contact.ContactRegistration
type Exception report
message validation failed for: com.contact.ContactRegistration
description The server encountered an internal error that prevented it from       fulfilling this request.
exception
org.hibernate.validator.InvalidStateException: validation failed for:    com.contact.ContactRegistration
org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:148)
org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:172)
org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:119)
org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:42)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)

我已经加入了这些罐子。

  1. classmate-1.0.0
  2. hibernate-validator.jar
  3. jboss-logging-3.1.0-CR2
  4. validation-api-1.1.0.Final

1 个答案:

答案 0 :(得分:1)

当您尝试保留对象时,将执行Hibernate验证。异常堆栈跟踪显示您正在Hibernate会话中保存瞬态实例。

它会抛出异常,因为要验证的对象具有无效值。该例外允许您回滚当前事务。

您的代码可以捕获org.hibernate.validator.InvalidStateException以获取发生错误的一些信息。它有一个方法getInvalidValues(),它返回验证错误。