Могу ли я использовать FixViewState.js из omnifaces с richfaces' a4j:ajax (RF4+JSF2.2/mojarra)

Я использую обходной путь исправления omnifaces 1.7 FixViewState для решения следующей проблемы: viewstate и ViewScope теряются при ajax render = "@ form". Обходной путь, кажется, работает хорошо с f: ajax, но не с a4j: ajax (richfaces).

Предполагается ли исправление работать с richfaces из коробки? (версия richfaces - 4.3.5)

возможно связанная проблема, зарегистрированная a4j:log:

error[15:09:31.667]: [status=200] During update: javax.faces.ViewState not found

Спасибо!

2 ответа

Решение

Tl;dnr: Richfaces-4.x не работает с JSF-2.2

Длинная версия:

Что касается информации из комментариев и из личного опыта: это известная ошибка в Richfaces-4.x в сочетании с Mojarra-2.2.x. См. RF-13317 для деталей.

Суть в том, что JSF-2.2 изменился на спецификации для ViewState скрытое поле ввода и RichFaces не поспевают (оно нацелено на JSF-2.1, так что все в порядке). Он по-прежнему отображает идентификатор состояния представления JSF-2.1, который сбивает с толку Javascript, включенный в Mojarra-2.2.x, в том смысле, что он теперь пытается найти элемент, который имеет идентификатор состояния представления JSF-2.1, но не находит ни одного. Это делает каждый вызов ajax с RichFaces номинальным сбоем, хотя и неразрушающим образом.

Лично я использую довольно некрасивую уловку, чтобы сделать вышеупомянутый проход:

<o:onloadScript>
    jQuery('#viewStateContainer').html('<span id="javax.faces.ViewState"></span>');
</o:onloadScript>
<span id="viewStateContainer" style="display:none;"></span>

Это предоставляет RichFaces поддельный элемент для помещения состояния просмотра (уничтожая его в процессе, поэтому его необходимо воссоздать onloadScript).

Это, кажется, решает мои проблемы, но довольно запутанно. Так что не стесняйтесь комментировать / спрашивать об этом.

Извините, у меня недостаточно репутации, чтобы комментировать выбранный ответ, но, похоже, это исправлено начиная с Richfaces 4.5.0 (см. Проблему с бэкпортом).

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