2014-04-04 3 views
0

Maven 및 Vaadin Bean 유효성 검사를 사용하여 내 콩의 유효성을 검사하는 응용 프로그램을 만들려고하고 있지만 현재 작동하지 않습니다.Vaadin Bean 유효성 검사가 포함 된 Maven?

나는 이것을 시도하고있다.

@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); 
    } 
} 

hibernate-validator를 dependecy로 추가했지만 여전히 작동하지 않습니다. vaadin bean validator 문서에는 Hibernate Validator 또는 agimatec-validation을 사용한다고 명시되어있다.

enter image description here

어느 나는이 일을 추가해야 의존성?

isBeanValidationImplementationAvailable() 메서드는 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 

답변

2

binder.commit()에 전화 할 때 유효성을 검사해야합니다. 클래스 경로에 javax.validation.Validation 클래스가 있는지 확인하십시오.

그렇지 않은 경우 BeanFieldGroupisBeanValidationImplementationAvailable() 정적 방법을 디버그하고 발견 한 세부 정보를 게시하시기 바랍니다. 내가 가지고 같은 문제

+0

에 포함로 결정하지만, 일식의 자동 완성을 반환하지 않습니다. 나는 Vaadin7을 사용하고있다 – FernandoPaiva

+0

그것이 보호 받게되었다. 메서드에서 소스를 체크 아웃하고 중단 점을 배치해야합니다. 소스 코드가 보이지 않으면 Settings -> Maven으로 이동하여 Download Artifact Sources + Download Artifact JavaDoc 체크 박스를 선택하십시오. – adam0404

+0

... 클래스에 대한 메서드를 옮겼습니다. 메서드가 True를 반환합니다. – FernandoPaiva

0

당신은 angel이라는 콩 검증 부가 기능과 함께 제공되는 BeanValidationForm 및 BeanValidationValidator를 사용해야합니다. 이 부가 기능에 대한 데모 코드는 svn입니다.

0

, 나는 바인더와 방법 isBeanValidationImplementationAvailable()를 사용하려고 해요 종속 <artifactId>javaee-api</artifactId>

관련 문제