GWT Разместить объекты - PullRequest
1 голос
/ 24 июня 2011

Я новичок в GWT, так что это может быть глупый вопрос, но я нигде не нашел хорошего ответа на него.

Итак, как мне создавать объекты Place в GWT? Должен ли я создавать их как финалы в моей ClientFactory и использовать их везде? объекты Place, которые Eclipse генерирует, используют строковый токен в качестве параметра, каким он должен быть?

Мое понимание следующее: я должен создать окончательные объекты Place в моем ValueChangeHandler для тех страниц, которые являются статическими, и повторно использовать их везде. Те места, которые относительно динамичны, должны быть созданы как

new MyCoolPlace("MyCoolPlace" + someRandomNumber)

но разве не глупо использовать случайные числа каждый раз, когда мне нужно перейти на новую страницу? также будет ли очищена история от объектов, которые я создал, скажем, несколько часов назад?

В настоящее время у меня есть проблема с выяснением, как работает этот механизм: У меня есть форма. Например, для добавления овощей в БД 1. Пользователь заполняет его 2. Представляет это 3. Получает на страницу благодарности 4. Кликает по ссылке в меню, чтобы добавить новый овощ 5. Получает форму, но она уже заполнена ранее введенными пользователем значениями.

Мне нужно очистить форму на шаге 5. Но если пользователь нажимает кнопку возврата браузера на шаге 3, я хочу, чтобы она была предварительно заполнена.

1 Ответ

3 голосов
/ 24 июня 2011

Вопрос о выпускном:

Я думаю, что нет. Это легкие объекты, и места могут иметь значения в них. Они не являются ограниченным набором значений мест (по крайней мере, если вы их параметризуете).

Вопрос о значениях формы:

Нормальным поведением является то, что когда вы возвращаетесь к слову -let "vegForm", вы получаете чистое представление (это потому, что ваш URL-токен является простым vegForm). Что происходит, я думаю, что вы повторно используете свое представление без инициализации. Ваш докладчик (или любой другой пользовательский интерфейс) должен получить представление и вызвать "reset ()" "init ()" или что угодно.

Если вы хотите сохранить свои значения при возврате, сохраните их в своем объекте place. Это: значения полей. И ваш PlaceTokenizer (объект, который трансформируется между URL и объектом Place) должен позаботиться о них. Например: vegForm/potato,green,... (не помню стандартную запись).

Проблема в том, как сохранить в URL введенные вами значения перед нажатием кнопки Сохранить?

Что бы я сделал, это «сохранить» это состояние в URL перед сохранением:

History.newItem("vegForm/potato,green,...", false);

И это попадет в стек истории. Когда я говорю false, это означает, что механизм истории GWT не должен реагировать на этот URL, избегая повторной загрузки представления. Когда ваш пользователь нажимает назад, он должен вернуться в форму (со значениями). Если ваш пользователь снова нажмет кнопку, он должен вернуться в форму (очистить).

К примеру:

User clicks add veg -> #vegForm
User fills data and pless save
   -> #vegForm/value1,value2 (saved in History with false argument)
   -> #okPage

User clicks back
   -> #vegForm/value1,value2 (form with saved data)
User clicks back
   -> #vegForm (form without)

Initialization

Учтите, что вы всегда должны инициализировать представление.

  • Если у вас нет params, очистите его (это может быть повторное использование)
  • Если у вас есть параметры, заполните их
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...