Как выполнить проверку полей на стороне клиента на прокси-объектах? - PullRequest
1 голос
/ 29 февраля 2012

Не могли бы вы, ребята, дать мне советы, как выполнить проверку полей на лету в приложении GWT на стороне клиента?

Я говорю о проверке значения поля после того, как оно потеряет фокус, чтобы я мог сообщить пользователю, что необходимо исправить.

Я в замешательстве, потому что я использую RequestFactory, поэтому на стороне клиента нет реальных компонентов, на которые ссылается JSR 303.

Плюс я бы хотел выйти за рамки @NotNull или @Size. Например, я хотел бы иметь возможность проверить, правильно ли был введен адрес электронной почты, или почтовый адрес содержит номер здания и т. Д.

Ссылки на библиотеки и примеры кода были бы очень полезны.

1 Ответ

2 голосов
/ 29 февраля 2012

для проверки на лету - Regex и ChangeListener - ваши друзья.

Зарегистрируйте прослушиватели изменений для полей вашего текстового поля.

Выполните регулярное выражение для содержимого приемлемого адреса электронной почты.

http://www.regular -expressions.info / email.html

myTextBox.addChangeListener( new ChangeListener() {
   void onChange(Widget sender) {
      if(!sender.getValue().matches("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$")) {
         sender.setFocus();
   }
}

Regex также работает для проверки JSR 303.

@Pattern("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$")
private String sender;

Наконец,Я нашел это отличное сообщение в блоге , в котором описывается, как выполнить проверку JSR 303 непосредственно из клиента GWT (сервер не требуется) путем расширения и настройки AbstractGwtValidatorFactory.

...