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, поэтому я заменил их на ^ и $. Это прекрасно работает для меня сейчас.