GWT: режим разработки ведет себя иначе, чем режим сервера - PullRequest
1 голос
/ 07 апреля 2011

это вопрос на 10 миллионов долларов! Я разрабатываю с GWT 2.1.1, MVP Framework, GIN и развертывание на Tomcat 6. До сих пор не было никаких проблем. Я добавил регулярное выражение (RE) на стороне клиента для проверки ввода текста. Ну, бывает, что RE прекрасно работает в режиме разработки, но не работает при развертывании на tomcat. Я также пытался развернуть на Tomcat в режиме разработки, и RE работает нормально. У меня проблемы только при развертывании соответствующего файла войны на tomcat.

Вот код:

private static String VALID_INPUT_STRING =  "((\\A[1-9]{1}[0-9]{0,4}\\z)|(\\A[1-9][0-9]{0,2}\\.[0-9]\\z)|(\\A0\\.[1-9]\\z))";

    public boolean isValidInput(String input) {
        if(
                input.isEmpty() || input.matches(VALID_INPUT_STRING)
        ) {
            return true;
        }
        return false;
    }    

   if (e.getNativeKeyCode() == KeyCodes.KEY_ENTER 
            && isValidInput(inputValue.getText())) {

                hideInsertPopUp();

    }

Есть идеи? Большое спасибо.

1 Ответ

1 голос
/ 07 апреля 2011

Я понял. Я использовал String.matches на стороне клиента. На самом деле GWT использует com.google.gwt.regexp.shared.RegExp под капотом.

com.google.gwt.regexp.shared.RegExp не поддерживает \ A и \ z , поэтому я заменил их на ^ и $ . Теперь это прекрасно работает для меня.

...