GWT: режим разработки ведет себя иначе, чем режим сервера

Это вопрос на 10 миллионов долларов! Я занимаюсь разработкой с использованием GWT 2.1.1, инфраструктуры MVP, 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 ответ

Решение

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

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

Другие вопросы по тегам