我正在使用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
如何在此处重复使用相同的验证器?
SEVERE: Received 'java.lang.NoSuchMethodError' when invoking action listener '#{clientBean.bulkUpload}' for component 'j_idt86'
2011年1月28日上午8:35:39 javax.faces.event.MethodExpressionActionListener processAction
SEVERE:java.lang.NoSuchMethodError:javax.persistence.Persistence.getPersistenceUtil()Ljavax / persistence / PersistenceUtil;
在
org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:62)
我尝试了这个解决方案link
我有hibernate-jpa-2.0-api-1.0.0.Final.jar,hibernate-validator-4.1.0.Final.jar
我还需要其他罐子吗?
答案 0 :(得分:4)
您可以使用以下内容手动调用验证器:
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Client client = new Client();
Set<ConstraintViolation<Client>> constraintViolations = validator.validate(client);
答案 1 :(得分:1)
你很可能在类路径上有另一个不完整的JPA 2 jar文件。不幸的是,这个jar的一些不完整版本在某个阶段发布(例如TopLink)。检查包含JPA类的任何jar的类路径。另请参阅https://forum.hibernate.org/viewtopic.php?f=9&t=999855