Использование методов JSF AJAX для сохранения области видимости модуля JavaScript - PullRequest
1 голос
/ 05 сентября 2011

Я работаю с приложением, которое имеет фреймворк JSF2.Идея этого фреймворка заключается в управлении соединением между Backend (Java) и Frontend.

Я знаю, что используемая нами версия JSF создает объект jsf.ajax в DOM, который содержит несколькометоды для передачи и получения данных.

Итак, я строю архитектуру Frontend на основе шаблона модулей, каждый из которых имеет частную область видимости.Внутри нескольких модулей мне нужно сделать вызов AJAX, чтобы получить некоторые данные из Backend, но если я использую стандартный способ JSF, вызывая a4j: jsFunction (ранее созданный), я теряю область действия моего модуля JavaScriptнемедленно.И, конечно же, не может вернуться обратно в модуль.

Поэтому я спрашиваю, возможно ли заархивировать что-то похожее на jQuery.ajax () методом с помощью jsf.ajax объект и его методы (запрос / ответ)?!

jQuery.ajax({
  url: "", // I don't have url as in PHP, I have JSF action listener #{method.function}
  data: { param: 'value' }, // params for method.function
  success: function(data){
    // yes I need to receive the data from Backend (maybe #{bean} or JSON)
  }
});

Я твердо верю, что есть способ использовать JSF и AJAX для Java (A4J) для архивированиямоя потребность в том, чтобы сохранить объем модуля JavaScript, не выходя из этого при совершении вызовов AJAX.

1 Ответ

2 голосов
/ 06 сентября 2011

Если вам нужен компонент ajax для публикации / извлечения произвольных данных с сервера, тогда я не думаю, что jsf.ajax - правильный инструмент для вас.Он строго связан с представлением JSF и может использоваться для вызова логики сервера и отображения частей HTML-страницы.Ответом будет XML с частичным обновлением.Ниже я опишу, как согнуть его в соответствии с вашими целями, но это не будет предполагаемое применение этого API.

Короче говоря, это должно быть названо как:

jsf.ajax.request(<DOM_node>, event, {render: "<rendered_id>", execute: "@this"})

Где DOM_nodeэто элемент, у которого есть слушатель действия, событие - это событие типа JS, поддерживаемое слушателем (если вы используете jsf.ajax.request в качестве onclick, тогда будет доступна только переменная «event», и вы можете передать ее как есть).должно быть идентификатором клиента компонента JSF, окружающего скрипт, который вы хотите выполнить в качестве обратного вызова.

В результате вызова JSF должен запросить прослушиватель действия, связанный с компонентом, соответствующим DOM_node (например, commandLink), и область визуализации, содержащуюся внутри компонентас,Если он содержит тег html , этот скрипт будет выполнен.Он может содержать ваши данные JSON и вызовы функций.

Вот ссылка на документ .

...