簡體   English   中英

Spring MVC 3.1根據字段值應用自定義驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM