繁体   English   中英

Java Bean条件验证

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM