[英]Java Bean Conditional Validation
我有兩個屬性的類。 我想使用Java Bean驗證,但是遇到了一個關於如何處理的問題?
class ProductRequest {
private String quantityType;
private double quantityValue;
//getters and setters
}
我想基於以下條件使用Java Bean驗證。 如果“ 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;
}
編輯:
通過評論解決問題。 您可以嘗試同時使用兩種方法:
@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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.