Некоторые предпосылки: я создаю настраиваемый компонент JSF. Компонент в основном представляет собой текстовый редактор, и он должен иметь кнопку "Сохранить" для сохранения строки содержимого редактора. Поскольку я использую библиотеку CodeMirror, мне нужно получить содержимое (строку) из редактора с помощью javascript и отправить его на сервер, Поэтому в этом случае я не могу использовать JS-вызов на основе XML, такой как f:ajax
.
Вопрос: я планировал отправить строку с помощью jsf.ajax.request
, но она напрямую не поддерживает методы вызова на beans. Как я могу вызвать метод в bean с JSF в AJAX образом?
Есть как минимум два способа обойти это:
- Включите скрытую форму на страницу со скрытым полем ввода. Обновите это поле ввода из javascript, а затем вызовите jsf.ajax.request, чтобы опубликовать эту форму. Пользовательские действия могут быть введены в свойство getter или setter при необходимости.
- Сделайте запрос с raw
XMLHttpRequest
(или, может быть, с помощью другой JS-библиотеки). Создайте сервлет и вызовите его.
Оба способа неуклюжи, а последний также выходит из сферы действия JSF.
Я что-то упустил? Как вы это делаете?
Существует довольно похожий вопрос, но ответы даны только для ссылок на XML-AJAX-вызовы. Существует также другой аналогичный вопрос, но это также относится к вызовам AJAX на основе XML.