Ist es möglich, das Etikett meiner Komponente innerhalb einer Validierung zu bekommen? Ich brauche dieses Label für eine benutzerdefinierte Fehlermeldung in meiner Validierung. Es sieht so aus:Wie bekomme ich Label von IValidatable in Wicket 7
"Der Wert darf nicht kleiner als {0} sein."
Wenn meine Komponente ein Etikett hat dann will ich es vor wie schreiben:
„Labelname: Der Wert nicht weniger sein kann als {0}.“
Meine Komponente BigDecimalValidator kennt nicht die BigDecimalTextfield.
tfiGV = new BigDecimalTextField("tfiGV", new Model<BigDecimal>());
tfiGV.setLabel(Model.of(Const_Labels.GV));
tfiGV.add(BigDecimalValidator.minimum(0));
Die validierbares von BigDecimalValidator die notwendige Etikett nicht erreichen kann.
@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);
}
}
Ich weiß, dass das Etikett durch einen Konstruktor für BigDecimalValidator erreicht werden kann, aber das ist keine schöne Lösung.
Könnten Sie mich erinnern, diese Funktion hängt von der spezifischen Erstellung von Paar XxxxxTextField/Label? –