【发布时间】:2014-12-09 00:06:56
【问题描述】:
我正在尝试使用 Maven 和 Vaadin Bean Validation 创建一个应用程序来验证我的 bean,但现在对我不起作用。
我正在尝试这个。
@Entity
public class Person{
@Id
@GeneratedValue
private Integer id;
@NotNull
@NotEmpty
@Size(min=5, max=50, message="insert first name")
private String firstName;
@NotNull
@NotEmpty
@Email
private String email;
}
//my app
public class LoginView extends VerticalLayout{
private TextField firstName, email;
private BeanFieldGroup<Person> binder;
private FormLayout form;
public LoginView(){
form = new FormLayout();
binder = new BeanFieldGroup<Person>(Person.class);
Field<?> field = null;
field = binder.buildAndBind("Firstname", "firstName");
firstName = (TextField)binder.getField("firstName");
form.addComponent(firstName);
field = binder.buildAndBind("Email", "email");
email = (TextField)binder.getField("email");
form.addComponent(email);
this.addComponent(form);
}
}
我添加了休眠验证器作为依赖项,但仍然无法正常工作。在 vaadin bean 验证器文档中说要使用 Hibernate Validator 或 agimatec-validation。
我需要为这项工作添加哪个依赖项?
方法isBeanValidationImplementationAvailable()返回true,Debug如下。
11:26:54,112 DEBUG [org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver] - Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver
11:26:54,113 DEBUG [org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver] - Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.
11:26:54,113 DEBUG [org.hibernate.validator.internal.xml.ValidationXmlParser] - Trying to load META-INF/validation.xml for XML based Validator configuration.
11:26:54,113 DEBUG [org.hibernate.validator.internal.xml.ValidationXmlParser] - No META-INF/validation.xml found. Using annotation based configuration only.
Is bean validation implementation available: true
【问题讨论】: