我有一个带有两个属性的类。我想使用Java Bean验证,但遇到了一种方法上的问题?
class ProductRequest {
private String quantityType;
private double quantityValue;
//getters and setters
}
我想基于以下条件使用Java Bean验证。 如果“ quantityType”等于“ foo”,则将“ quantityValue”限制为最大大小为5 否则“ quantityType”等于“ bar”,将“ quantityValue”限制为最大3。
在这种情况下最好的方法是什么?
答案 0 :(得分:2)
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;
}