DynamicValidator
DynamicPropertyのように、動的にValidatorを変えたい場合のために
DynamicValidatorを実装しました。
対象のコンポーネントのid+Validatorのgetterで
Validatorを動的に置き換えて使うことが出来ます。
その際アノテーションで指定したValidatorは無視されます。
サンプルコードは下記のようになります。
public class DynamicValidatorPage { // これらは動的なValidatorが定義されている場合、無視される public static final String aaa_TRequiredValidator = null; public static final String aaa_TLengthValidator = "minimum = 1"; public static final String bbb_TRequiredValidator = null; public static final String bbb_TLengthValidator = "minimum = 1"; private Integer aaa; private Integer bbb; public Validator getAaaValidator() { return createValidator(); } public Validator getBbbValidator() { return createValidator(); } protected Validator createValidator() { ValidatorChain chain = new ValidatorChain(); chain.add(new TRequiredValidator()); TLengthValidator lengthValidator = new TLengthValidator(); lengthValidator.setMinimum(5); chain.add(lengthValidator); return chain; } public void doExec() { } public Integer getAaa() { return aaa; } public Integer getBbb() { return bbb; } public void setAaa(Integer aaa) { this.aaa = aaa; } public void setBbb(Integer bbb) { this.bbb = bbb; } }