本文介紹了Java Bean條件驗(yàn)證的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有一個(gè)具有兩個(gè)屬性的類。我想使用Java Bean驗(yàn)證,但遇到了一個(gè)關(guān)于如何處理的問題?
class ProductRequest {
private String quantityType;
private double quantityValue;
//getters and setters
}
我想使用基于以下條件的Java Bean驗(yàn)證。
如果”QuantityType”等于”foo”,則將”QuantityValue”的最大大小限制為5
否則”QuantityType”等于”bar”,則將”QuantityValue”的最大大小限制為3。
在此方案中,最佳方法是什么?
推薦答案
import javax.validation.constraints.AssertTrue;
@AssertTrue
public boolean isBothFieldsValid() {
if (quantityType.equals("foo")) {
return quantityValue < 5;
} else if (quantityType.equals("bar")) {
return quantityValue < 3;
}
return false;
}
編輯:
從評(píng)論中回答問題。您可以嘗試同時(shí)使用兩種方法:
@AssertTrue(message = "quantity should be below 5 for foo")
public boolean isQuantityValidForFoo() {
if (quantityType.equals("foo")) {
return quantityValue < 5;
}
return true;
}
@AssertTrue(message = "quantity should be below 3 for bar")
public boolean isQuantityValidForBar() {
if (quantityType.equals("bar")) {
return quantityValue < 3;
}
return true;
}
這篇關(guān)于Java Bean條件驗(yàn)證的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,