2016-08-15 1 views
1

왜 내가 같은 기업 만들 경우에도, 봄 @Valid 주석을 사용해야합니까 : 난 그냥 만들 수 있습니다 EJB에서대비 EJB 검증 봄의 "@Valid"검증 주석에서 제공하는 별도의 어떤 이익을

public class MyEntity{ 

    private Long id; 

    @NotNull 
    @Size(min=5, max=16) 
    private String username; 

    @NotNull 
    @Size(min=5, max=25) 
    private String password; 

    @NotNull 
    @Size(min=2, max=30) 
    private String firstName; 

    @NotNull 
    @Size(min=2, max=30) 
    private String lastName; 

    @NotNull 
    @Email 
    private String email; 

    ....... 
} 

을 웹 애플리케이션에서 유효성 검사 제한을 자동으로 시행하는 주석 된 Entity Class. 그런데 왜 이것이 스프링 MVC에 @Valid 추가 주석이 필요합니까? 당신이 MyEntity

<form modelAttribute="MyEntity"> 

를 생성하고 사용자가 잘못된 데이터를 입력하고 경우없이 양식을 제출 양식이있는 경우

답변

0

@valid은 별도의 양식을 바인딩 할 때 매우 유용합니다 annotaion에 대한 예 아니다 @valid annotaion

ControllerMethod(@modelAttribute("MyEntity") MyEntity MyEntity){ 
//you have a invalid object of MyEntity.  
} 

하지만 당신은 @valid annotaion 갈 경우

ControllerMethod(@valid @modelAttribute("MyEntity") MyEntity MyEntity,BindingResult result){ 
//with using @valid annotaion you dont have to check 
//if the fields are not null in the myentity object, 
//if the myentity object does have errors or incomplete those errors will be stored in 
//the result object,so you can simply make a redirect to the form again 
    if(result.hasErrors()){ 
    //object is invalid return to the form 
    }else{ 
    //object is valid. you can continue 
    } 
    } 
+1

EJB 유효성 검사가 포함 된 '@valid'주석과 비교하는 방법을 알고 싶습니다. 그것은 '@ invalid'주석이없는 EJB 유효성 검사 작업이지만, 봄의 경우 '@valid'주석이 필요합니다. –

0

경우에 기본 필드 값이있는 MyEntity 클래스 객체를 보내려고하면 어떻게해야합니까? 매번 @Valid를 사용할 때마다 필드의 유효성을 검사 할 수도 있고하지 않을 수도 있습니다.