Кнопка "Отправить" + GWT History

Хорошее дизайнерское решение при отправке формы, каким должно быть поведение кнопки "назад" и "вперед" браузера. Аналогичный вопрос, что должно произойти, когда пользователь выходит из приложения и затем нажимает кнопку "Вперед" в браузере?

Я буду рад услышать некоторые сценарии для упомянутых ситуаций.

Благодарю.

Редактировать - должно быть хорошо, чтобы поделиться и мою точку зрения:-)

Мое личное мнение: после выхода из системы пользователь не сможет войти в приложение, не пройдя страницу входа. Для сценария отправки - после отправки и возврата в браузер, пользователь должен иметь возможность вернуться в форму, но без данных, содержащих данные.

2 ответа

Решение

Один общий шаблон - Post / Redirect / Get. Согласно этому шаблону, результатом публикации является закладка (и навигация назад / вперед). Кнопка "Назад" имеет одно из обычных значений: "Я не хотел идти сюда, вернуть меня туда, где я был", как нажатие ESC в большинстве диалогов Windows, а кнопка "Вперед" означает "Я не хотел ударять назад". Кнопка, я хотел эту страницу в конце концов." Эта модель не будет работать для всех; это имеет смысл, когда каждая страница (включая ответ на отправку формы) представляет собой концептуальную сущность, которую вы хотите добавить в закладки.

Что касается сценария выхода из системы, большинство приложений проверяют, вошли ли вы в систему, независимо от того, какая страница указана в URL-адресе, и перенаправляют на форму входа, если вы не вошли. (Вам не нужно кодировать это на каждом страница, чек, как правило, Valve или что-то в этом роде. Хорошая функция - помнить, куда пользователь пытался зайти, и забрать их туда после успешного входа.

Ваш вопрос больше относится к дизайну, чем к технологии, поэтому GWT не меняет картину, за исключением того, что обратите внимание, что механизм истории GWT предназначен для имитации поведения статических страниц, связанных ссылками, что также делает шаблон post/redirect/get,

Очень часто используются конечные автоматы для сохранения состояния пользователя (сеанса) и запроса. Если у вас есть такой конечный автомат, вы знаете, что пользователь пытается выполнить неправильный переход. В зависимости от состояния пользователя и неправильного перехода вы можете перенаправить пользователя на страницу. Например, если пользователь пытается перейти на страницу, на которой необходимо войти, но он / она уже вышел из системы, вы можете отправить его / его на страницу входа, но вы можете указать имя пользователя и только запросить пароль.

Чтобы добавить эту функцию, вы можете написать свой собственный код, жестко запрограммировав конечный автомат в своем коде, или вы можете использовать одну из доступных библиотек. Например, Spring Web Flow предоставляет эту функциональность для среды Spring.

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