2013-04-21 2 views
0

У меня есть форма Wicket, содержащая текстовое поле.Событие валидации поля калитки

Я хочу, чтобы это текстовое поле имело как минимум 3 символа.

Для того, чтобы сделать это, я добавил StringValidator следующим образом:

 newPersonName.add(StringValidator.minimumLength(3)); 

Он работает, как должно, и даже сообщения об ошибках в моем компоненте FeedbackPanel.

Дело в том, что я хочу иметь возможность сделать что-то вручную (какой-то журнал), когда проверка не удалась, поэтому я хочу «Поймать» событие сбоя проверки и добавить туда свою собственную функцию.

Как я могу это сделать?

ответ

2

Вы можете просто подклассом StringValidator и переопределить метод decorate (Калитка 6). В вашем примере, он должен выглядеть следующим образом:

newPersonName.add(new StringValidator(3, null){ 
    protected ValidationError decorate(ValidationError error, IValidatable<String> validatable){ 
     ValidationError superError = super.decorate(error, validatable); 
     //log logic goes here 
     return superError; 
    } 
}); 
+0

Не могу найти Javadocs из «украшают» - где эта функция находится? – Chaiavi

+0

Если вы не можете найти этот метод, возможно, потому, что вы используете Wicket 1.5, в этом случае вам нужно переопределить 'onValidate' или подобное. –

Смежные вопросы