本文介绍了Java Bean条件验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个具有两个属性的类。我想使用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;
}
这篇关于Java Bean条件验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!