Кнопка "Отправить" + GWT History
Хорошее дизайнерское решение при отправке формы, каким должно быть поведение кнопки "назад" и "вперед" браузера. Аналогичный вопрос, что должно произойти, когда пользователь выходит из приложения и затем нажимает кнопку "Вперед" в браузере?
Я буду рад услышать некоторые сценарии для упомянутых ситуаций.
Благодарю.
Редактировать - должно быть хорошо, чтобы поделиться и мою точку зрения:-)
Мое личное мнение: после выхода из системы пользователь не сможет войти в приложение, не пройдя страницу входа. Для сценария отправки - после отправки и возврата в браузер, пользователь должен иметь возможность вернуться в форму, но без данных, содержащих данные.
2 ответа
Один общий шаблон - Post / Redirect / Get. Согласно этому шаблону, результатом публикации является закладка (и навигация назад / вперед). Кнопка "Назад" имеет одно из обычных значений: "Я не хотел идти сюда, вернуть меня туда, где я был", как нажатие ESC в большинстве диалогов Windows, а кнопка "Вперед" означает "Я не хотел ударять назад". Кнопка, я хотел эту страницу в конце концов." Эта модель не будет работать для всех; это имеет смысл, когда каждая страница (включая ответ на отправку формы) представляет собой концептуальную сущность, которую вы хотите добавить в закладки.
Что касается сценария выхода из системы, большинство приложений проверяют, вошли ли вы в систему, независимо от того, какая страница указана в URL-адресе, и перенаправляют на форму входа, если вы не вошли. (Вам не нужно кодировать это на каждом страница, чек, как правило, Valve или что-то в этом роде. Хорошая функция - помнить, куда пользователь пытался зайти, и забрать их туда после успешного входа.
Ваш вопрос больше относится к дизайну, чем к технологии, поэтому GWT не меняет картину, за исключением того, что обратите внимание, что механизм истории GWT предназначен для имитации поведения статических страниц, связанных ссылками, что также делает шаблон post/redirect/get,
Очень часто используются конечные автоматы для сохранения состояния пользователя (сеанса) и запроса. Если у вас есть такой конечный автомат, вы знаете, что пользователь пытается выполнить неправильный переход. В зависимости от состояния пользователя и неправильного перехода вы можете перенаправить пользователя на страницу. Например, если пользователь пытается перейти на страницу, на которой необходимо войти, но он / она уже вышел из системы, вы можете отправить его / его на страницу входа, но вы можете указать имя пользователя и только запросить пароль.
Чтобы добавить эту функцию, вы можете написать свой собственный код, жестко запрограммировав конечный автомат в своем коде, или вы можете использовать одну из доступных библиотек. Например, Spring Web Flow предоставляет эту функциональность для среды Spring.