Ajax и JSF 1.1, использующие скрытый iframe с «прокси-формами», что вы думаете об этой стратегии развития? - PullRequest
0 голосов
/ 09 апреля 2009

В настоящее время я использую спецификации 1.1, поэтому я пытаюсь упростить то, что для меня слишком сложно: p, управление компонентами поддержки с конфликтующими правилами навигации, правилами нарушения внешних параметров и т. Д., Например, когда мне нужно вспомогательный компонент, используемый другими «представлениями», просто я называю его с помощью FacesContext внутри других вспомогательных компонентов, но часто он слишком привязан к правилам навигации / инициализации JSF, чтобы его можно было реально использовать, и, конечно, более простым становится более полезным стать FacesContext.

Таким образом, используя лишь немного кросс-браузерного Javascript (просто копию формы и чтение-запись в форме «прокси»), я создаю своего рода прокси-форму внутри главной страницы пользователя (полностью отделенную от правил навигации JSF, но используя JSF taglibs). Ajax дает мне гибкость при взаимодействии с пользователем, но JSF всегда управляет данными.

Практически я требую от всех "вымышленных" действий пользователя скрытый "iframe", который создает все необходимые формы в соответствии с правилами JSF, затем javascript просто клонирует вывод своей формы и переводит его на уровень представления пользователя (CSS для показа / скрытия) настоящих командных кнопок и создания симпатичных), пользователь играет, и когда он щелкает по кнопке submit, скрипт копирует все «проксированные» значения формы в реальную JSF-форму внутри «iframe», которая вызывает реальную отправку формы. очевидно зависит от вашего выбора.

Теперь JSF действительно доставляет удовольствие: -p

Мой реальный интерес состоит в том, чтобы узнать, какова ваша альтернативная стратегия использования чистого Ajax и JSF 1.1 без использования среднего уровня, такого как ajax4jsf и других, - все это хороший выбор, но слишком много «плагинов», чем спецификации.

1 Ответ

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

Мое предложение состоит в том, чтобы вы взглянули на Javascript-фреймворки, например, Prototype или JQuery. Они имеют функциональность, которая позволяет сериализовать данные формы и отправлять их на сервер с помощью Ajax. Затем вы можете получить ответ и отобразить его на веб-странице. Взгляните на прототип Form.serialize и Ajax.Updater. Я думаю, что это более чистый способ работы, чем использование «прокси» -фреймов и форм.

Скажем, у вас есть форма, которую вы хотите отправить на сервер, и замените форму HTML-фрагментом с сервера. Это один из способов сделать это с помощью Prototype:

new Ajax.Updater('divThatWrapsTheFormTag', 'someUrl', {
  parameters: Form.serialize('formId')
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...