簡體   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