1
我正在嘗試爲我的項目創建一個簡單的自定義驗證器,而且我似乎無法找到有條件地驗證條件的方法。根據SEAM中另一個字段的值,我如何根據需要驗證字段?
下面是我有:
一個輔助/支持bean(這不是一個實體)被要求如果
@RequiredIfSelected
public class AdSiteHelper {
private Date start;
private Date end;
private boolean selected;
/* getters and setters implied */
}
我需要的是「開始」和「結束」並且只有在選擇是正確的。
我試着在TYPE目標處創建一個自定義驗證器,但縫似乎不想撿起它並驗證它。 (也許是因爲它不是一個實體?)
這裏是我的自定義註釋對於初學者的總體思路:
@ValidatorClass(RequiredIfSelectedValidator.class)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiredIfSelected {
String message();
}
public class RequiredIfSelectedValidator implements Validator<RequiredIfSelected>, Serializable {
public boolean isValid(Object value) {
AdSiteHelper ash = (AdSiteHelper) value;
return !ash.isSelected() || (ash.getStart() && ash.getEnd());
}
public void initialize(RequiredIfSelected parameters) { }
}