0
検証の中で自分のコンポーネントのラベルを取得することは可能ですか?私は自分の検証でカスタムエラーメッセージのためにこのラベルが必要です。それは次のようになります。Wicket 7のIValidatableからラベルを取得する方法
"値は{0}より小さくないことがあります。"
私の成分が標識を持っている場合、私のような前にそれを書きたい:
「ラベル名:値はありません{0}未満とすることができます」
マイコンポーネントBigDecimalValidatorはBigDecimalTextfieldを知りません。
tfiGV = new BigDecimalTextField("tfiGV", new Model<BigDecimal>());
tfiGV.setLabel(Model.of(Const_Labels.GV));
tfiGV.add(BigDecimalValidator.minimum(0));
BigDecimalValidatorのvalidatableは、必要なラベルに到達することはできません。
@Override
public void validate(IValidatable<BigDecimal> validatable) {
// Doesn't work ((FormComponent<BigDecimal>) validatable).getLabel();
if (((BigDecimal) validatable.getValue()).compareTo(BigDecimal.valueOf(minimum, 3)) == -1) {
ValidationError valError = new ValidationError();
valError.setMessage(getErrorMessageMin(minimum));
validatable.error(valError);
}
}
私はラベルがBigDecimalValidatorのコンストラクタによって達することができることを知っているが、これは素晴らしい解決策ではありません。
この機能は、XxxxxTextField/Labelペアの特定の作成に依存していますか? –