JSF 2.0 AJAX: вызовите метод bean-компонента из javascript с помощью jsf.ajax.request (или каким-либо другим способом)

Немного предыстории: я создаю собственный компонент JSF. Компонент в основном является текстовым редактором, и он должен иметь кнопку «Сохранить» для сохранения строки содержимого редактора. Поскольку я использую библиотеку CodeMirror , мне нужно получить содержимое (строку) из редактора с помощью javascript и отправить его на сервер. Следовательно, в этом случае я не могу использовать JS-вызов на основе XML, такой как f: ajax .

Вопрос: Я планировал отправить строку с помощью jsf.ajax.request , но он не поддерживает напрямую методы вызова bean-компонентов. Как я могу вызвать метод в bean-компоненте с помощью JSF способом AJAX?

Есть как минимум два способа обойти это:

  • Включить скрытую форму на страницу со скрытым полем ввода. Обновите это поле ввода из javascript, а затем вызовите jsf.ajax.request, чтобы опубликовать эту форму. При необходимости пользовательские действия могут быть вызваны в геттере или сеттере свойства.
  • Выполните запрос с необработанным XMLHttpRequest (или, возможно, с помощью какой-либо другой библиотеки JS). Создайте сервлет и вызовите его.

Оба способа неуклюжи, и последний также выходит за рамки JSF.

Я что-то упустил? Как вы это делаете?

Есть очень похожий вопрос , но приведенные ответы относятся только к вызовам AJAX на основе XML. Существует также другой аналогичный вопрос , но он также относится к вызовам AJAX на основе XML.

13
задан Community 23 May 2017 в 12:33
поделиться