Мы перенесли наше приложение на основе 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
?
Заранее спасибо