2016-07-04 1 views
0

Struts2. Действие выполняет запрос в БД и показывает результат на jsp.
Результатом является список записей. Нажав на строку этого списка, он вызывает другое действие, которое вызывает запрос db, и показывает в другом окне (всплывающее) подробное описание записи.
В этом всплывающем окне я могу обновить запись и сохранить изменения в БД. Для этого я вызываю действие, которое после выполнения изменений БД перенаправляет на второе действие (то, что показывает всплывающее окно детали), чтобы я мог видеть, что запись обновлена.
Проблема заключается в том, что за всплывающим окном я вижу еще (я должен это сделать!) Главное окно со списком, но в списке все еще отображаются, очевидно, старые данные обновленной записи!Как обновить одновременно главное окно и всплывающее окно (внутри приложения Struts2)?

Как я могу обновить (обновить) одновременно всплывающее окно и список?

PS - ограничения.
1-Как я уже сказал, мне нужно отобразить всплывающее окно и список (это требование к проекту), поэтому я не могу загружать детали в главное окно, а не в список.
2-Приложение должно работать в Chrome, которое, как отмечено, имеет жалкое использование события onbeforeunload, даже если по-разному не обязательно будет решением: пользователь может захотеть взглянуть на главное окно не обязательно, закрыв но просто переместив его.

+0

Нет, это невозможно. –

+0

Используйте некоторые javascript. –

+0

спасибо вам обоим. Александр, ты мог бы быть немного более подробным? , чтобы дать мне трек, подсказку, если не совсем пример? , каким образом я должен использовать скрипт? –

ответ

0

Вы можете легко выполнить это с помощью jQuery и AJAX.

  • Выберите интересующую вас строку, отправив запрос AJAX к действию Struts2, отвечающему на ответ HTML, который представляет частичную страницу, которую вы загружаете в div. Этот фрагмент ответа содержит диалоговое окно jQuery modal, которое открывается при загрузке.
  • Редактирование записи в модальном поле.
  • Нажатие кнопки сохранения отправляет форму с использованием AJAX в другое действие Struts2. Это действие может либо вернуть JSON, либо другой частичный ответ HTML. Мне часто легче работать с частичными фрагментами HTML.
  • При ошибке частичный фрагмент HTML содержит форму с указанными различными ошибками поля, чтобы пользователь мог вносить изменения.
  • При успехе частичный фрагмент HTML содержит небольшой фрагмент javascript, который вызывает событие, на которое отвечает исходная таблица, чтобы перезагрузить его данные, возможно, через AJAX с сервера. Кроме того, фрагмент javascript инструктирует открытое диалоговое окно закрываться и, возможно, удаляется из DOM.

Да, это выполнимо, но требует Javascript, как указано в комментарии.

+0

Нарос привет, извините за поздний ответ, но я временно отложил проблему. Я попытаюсь следовать вашим советам, приспособив их к моим потребностям: из приложения кто-то решил устранить все стандартные функции ajax (Dojo, JQuery - исключая DateTimePicker) и заменить их исходным кодом, поэтому я попытаюсь следить за вашим треком, пытаясь написать что-то подобное в простом JavaScript. Thanx –