2013-04-04 52 views
2

我有一顆豆的值自定義驗證與流動結構Spring MVC的3.1將根據現場

public class Payment { 
private String payType; 
@Valid 
private CreditCard creditCard; 
private BankAccount bankAccount; 
} 

的credidCard類

public class CreditCard { 
@Pattern(regexp="(\\d{16})") 
private String cardNumber; 
@NotEmpty 
@Size(max=40) 
private String name; 
@NotEmpty 
private String securityCode; 
@Future 
private Date expiration_Date; 
} 

就像是適用於銀行賬戶類驗證也。 現在我想要的是如果PayType是信用,那麼我需要驗證CreditCard其他明智的我需要驗證BankAccount。 我知道這種類型,我們可以寫一個像鏈接JSR 303 Validation

像定製驗證器但在這種情況下,我需要編寫該類的所有領域的驗證邏輯。可以編寫一些邏輯,以便根據paytype現有的驗證工作。那只是我想要的@Valid註釋類型。 請幫我

+0

http://stackoverflow.com/questions/3683007/annotation-based-validation-framework - 可能是這可以幫助。 – Mikhail 2013-04-04 06:00:35

+0

@Noofiz對我沒有用處 – Krushna 2013-04-04 07:13:00

回答

0

我終於得到了問題的解決方案,我發佈的答案,以便它將幫助其他完整。邏輯是我需要提供一個自定義方法,它將返回我想要驗證的對象。像以下

public class Payment { 
private String payType; 

private CreditCard creditCard; 
private BankAccount bankAccount; 

@Valid 
public Object getValid(){ 
    if(creditCard!=null && payType.equals("credit")) 
     return creditCard; 
    if(bankAccount !=null&& payType.equals("bank")){ 
     return bankAccount; 
    } 
    return null; 
} 
}