Как мне снова заполнить форму с помощью Java? - PullRequest
1 голос
/ 22 апреля 2009

У меня есть форма, которая отправляется сервлету и обрабатывается методом doPost (). После отправки формы пользователь попадает на другую страницу с помощью кнопки «Назад» (а не кнопки «Назад» в браузере). Если нажать кнопку «Назад», форма должна заполниться исходным вводом. Как я могу сделать это?

Ответы [ 5 ]

2 голосов
/ 22 апреля 2009

Вы несете ответственность за хранение информации и заполнение формы вручную. Вы можете сделать это одним из двух способов:

  1. Либо вы толкаете контент на клиент и прочитать его обратно, когда необходимо.
  2. Или вы можете сохранить сформировать данные для этого клиента в серверное пространство.

Я предпочитаю позже, создав модель, которая представляет данные формы. Когда форма обработана, вы можете сохранить копию для этого клиента. Если страница перезагрузится, вы можете проверить наличие предыдущей модели. Если он существует, вы используете эти данные для заполнения формы. Если он не существует, вы можете использовать модель по умолчанию или пустые значения.

Существуют и другие преимущества сбора вашего контента в модель, которая будет полезна вам позже. Например, если вы вносите изменения в форму, и у вас есть кнопка «Отменить» рядом с кнопками «Отправить» и «Очистить», вы можете легко вернуться к последнему известному состоянию. Чтобы активировать кнопку «Отменить», вы можете легко сделать:

boolean isDirty = savedModel.equals(currentModel);

И включить / отключить кнопку «Отменить», используя логическое значение, вместо того, чтобы иметь тонны операторов «if / else», чтобы увидеть, было ли изменено значение. Много чище.

Jeach!

0 голосов
/ 22 апреля 2009

Если пользователь отправляет форму, данные помещаются в базу данных? Если это так, просто запросите базу данных и снова заполните форму ... Если нет, рассмотрите возможность сохранения данных в базе данных.

0 голосов
/ 22 апреля 2009

После отправки оригинальной формы у вас есть несколько вариантов на стороне сервера:

  1. сохранить значения формы в сеансе и заполнить их формой, вызванной действием 'Back';
  2. добавить значения формы в качестве параметров к URL-адресу действия «Назад», чтобы они были частью запроса.
0 голосов
/ 22 апреля 2009

Вам придется следить за данными, предоставленными пользователем в форме.

Вы можете поместить эти данные в URL, запросе или сеансе.

Убедитесь, что вы избегаете небезопасных символов, когда возвращаете их обратно в форму.

Существует множество веб-фреймворков, которые делают подобные вещи проще.

Распорки и Полосы - это два, которые приходят на ум.

0 голосов
/ 22 апреля 2009

Если вы используете javascript: history.back (), ваш браузер автоматически позаботится об этом за вас.

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