Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven与Vaadin Bean验证?_Java_Maven_Vaadin_Vaadin7 - Fatal编程技术网

Java Maven与Vaadin Bean验证?

Java Maven与Vaadin Bean验证?,java,maven,vaadin,vaadin7,Java,Maven,Vaadin,Vaadin7,我正在尝试使用Maven和Vaadin Bean验证来创建一个应用程序来验证我的Bean,但现在对我来说不起作用 我正在试这个 @Entity public class Person{ @Id @GeneratedValue private Integer id; @NotNull @NotEmpty @Size(min=5, max=50, message="insert first name") private String firs

我正在尝试使用Maven和Vaadin Bean验证来创建一个应用程序来验证我的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);
     }
}

您需要使用VaadinBean验证插件附带的BeanValidationForm和BeanValidationValidator。
您将在中找到此加载项的一些演示代码。

当您调用
binder.commit()
时,它应该进行验证。检查类路径上是否有
javax.validation.validation


如果不是这样,请调试
BeanFieldGroup
上的
isBeanValidationImplementationAvailable()
静态方法,并发布您发现的任何详细信息

我也遇到了同样的问题,决定使用包含在依赖项中的javaee api

我尝试使用绑定器的方法isBeanValidationImplementationAvailable(),但不返回eclipse的自动完成。我用的是Vaadin7,因为它是受保护的。您应该签出源代码并在方法中放置断点。如果看不到源代码,请转到Settings->Maven并选中Download Artifact Sources+Download Artifact JavaDoc复选框……我移动了一个类的方法,该方法返回True
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