Понимание JSFs options.params в jsf.ajax.request

Мы перенесли наше приложение на основе JSF 2.2 в JSF 2.3. За исключением некоторых мелких проблем, мы смогли все запустить и запустить. Для одного представления мы используем JSF-компонент Butterfaces, особенно компонент дерева. В JSF 2.3 было невозможно выбрать узел и показать детали этого узла в другом контейнере. Соответствующий Ajax-запрос отправляет идентификатор узла как options.params, Это хорошо работало с JSF 2.2, но больше не работает с JSF 2.3. Мы все еще находимся на Butterfaces 2 (который должен работать из-за обратной совместимости), но даже в демонстрации Butterfaces 3 на Java EE 8, выбор через Ajax, похоже, не работает.

Я посмотрел на jsf.ajax.request Метод Javascript из JSF 2.3 отладил его и понял, что параметр был проигнорирован и удален, так как он кажется неправильным форматом. Таким образом, я обезьяна пропатчил метод в нашем приложении с помощью этого маленького глупого фрагмента кода, чтобы получить параметр, отправленный на сервер через запрос ajax:

var originalJsfAjaxRequest = jsf.ajax.request;
jsf.ajax.request = function (source, event, options) {
    options.params = {params: options.params};
    originalJsfAjaxRequest.apply(this, [source, event, options]);
}

Вот и все, он снова работает нормально.

Итак, мой вопрос, где проблема должна быть. Это проблема в JSF, чтобы игнорировать такого рода параметры. Или это проблема того, что Butterfaces неправильно использует параметры? Как правильно использовать options.params?

заранее спасибо

0 ответов

Я не знаю почему, но JSF 2.3 игнорирует атрибут param при использовании jsf.ajax.request. Существует проблема с ButterFaces: https://github.com/ButterFaces/ButterFaces/issues/232, и новый выпуск будет выпущен на этой или следующей неделе.

Другие вопросы по тегам