我正在使用JSF 2,MyFaces,Hibernate-validator-4.1.0.final.jar。

我使用Hibernate-validator来验证以形式输入的值。

public class Client {
   @Persistent
   @Pattern(regexp = "|.+@.+\\.[a-z]+", message = "Email format is invalid.")
   private String email;
   //getter
}

我正在开发散装模块,在该模块中解析CSV数据并创建数据库记录。

...
try{
  Client cl=new Client();
  cl.setEmail("from_csv_data");
}catch( //validation failed

如何在此处重复使用相同的验证器?



set> condraintArtionation = validator.validate(nc);
引发此例外

SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'

2011年1月28日8:35:39 AM Javax.faces.event.MethodeXpressionActionListener处理
严重:java.lang.nosuchmethoderror:javax.persistence.persistence.getpersistenceutil()ljavax/persistence/persistenceutil; atorg.hibernate.validator.engine.Resolver.jpatraversablereSolver.isreach(jpatraversablereresolver.java:62)

我尝试了这个解决方案 关联
我有Hibernate-JPA-2.0-API-1.0.0.0.final.jar,Hibernate-Validator-4.1.0.final.jar.jar
我还需要其他罐子来制作这项工作吗?

有帮助吗?

解决方案

您可以手动调用验证器:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

Validator validator = factory.getValidator();

Client client = new Client();

Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);

其他提示

您很可能在类路径上有另一个不完整的JPA 2 JAR文件。不幸的是,该罐子的一些不完整版本在某个阶段发布(例如Toplink)。检查您的类路径中的任何包含JPA类的JAR。也可以看看 https://forum.hibernate.org/viewtopic.php?f=9&t=999855

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top