Я пытаюсь сделать мои текстовые поля ошибочными, когда проверка не удалась для компонента формы.Я добавляю значение «error» к своему атрибуту класса текстового поля, что делает его красным.
Я делаю это, переопределяя метод onValidate () в форме и определяя мои компоненты, чтобы увидеть, есть ли у них ошибки.
@Override
protected void onValidate() {
super.onValidate();
Iterator<Component> compIter = iterator();
while(compIter.hasNext()) {
final Component comp = compIter.next();
if(comp instanceof AbstractTextComponent<?>) {
comp.add(new AttributeAppender("class", new Model<String>() {
@Override
public String getObject() {
return (comp.hasErrorMessage())?"error":"";
}
}, " "));
}
}
}
Это работает, но когда я смотрю на сгенерированный HTML:
<input id="user_username" class="normal error error error" type="text" name="user.userName" value="stijn" maxlength="25" wicket:id="user.userName">
Он генерирует значение ошибки 3 раза.Что я делаю не так?
Это лучший способ сделать это в калитке или есть лучшие способы ???
thx, Коэн