[英]Spring MVC 3.1 applying Custom Validation according to value of a field
我有一個流動的豆子
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為Credit,那么我需要驗證CreditCard,否則需要驗證BankAccount。 我知道,對於這種類型,我們可以像鏈接JSR 303驗證中那樣編寫自定義驗證器
但是在這種情況下,我需要為該類的所有字段編寫驗證邏輯。 可以編寫一些邏輯,以便根據薪資類型進行現有的驗證。 那只是我想要@Valid
注釋根據類型。 請幫我
我終於找到了解決問題的方法,並發布了答案,以便對其他人有所幫助。 邏輯是我需要提供一個自定義方法,該方法將返回要驗證的對象。 像下面
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.