2012-05-21 68 views
0

我一直在尋找一種方法來驗證bean是否只有某些屬性而不是所有的屬性。java中的自定義bean驗證

對於防爆:

public Class TestA { 

@NotEmpty 
private String first; 

@NotEmpty 
@Size(min=3,max=80) 
private String second; 

//getters and setters 

} 

我有另一個被稱爲「TESTB」,其referreing到類「種皮」如下

public Class TestB { 

@NotEmpty 
private String other; 

@Valid 
private TestA testA; 

//public getters and setters 
} 

類是有可能編寫自定義註解驗證來驗證只有某些屬性?像下面的東西...

public Class TestB { 

@NotEmpty 
private String other; 

@CustomValid(properties={"second"}) 
private TestA testA; 

//public getters and setters 
} 
+0

使用繼承(接口和超類) –

回答

1

使用groups屬性來做到這一點。它會看起來像這樣:

public Class TestA { 

@NotEmpty(groups = {Second.class}) 
private String first; 

@NotEmpty(groups = {Second.class}) 
@Size(min=3,max=80, groups = {Second.class}) 
private String second; 

//getters and setters 

} 

public Class TestB { 

@NotEmpty 
private String other; 

@Valid 
private TestA testA; 

//public getters and setters 
} 

哪裏Second是某處定義一個空接口。

有關更多詳細信息,請參閱文檔中的示例:2.3. Validating groups另外,如果您使用Spring> = 3.1,則可能會在@Validates註釋中引起興趣,該註釋允許啓用對指定組的驗證。