Я использую JSF 1.2 с RichFaces 3.3.3 (проект большой компании - никаких параметров для обновления еще), и у меня есть проблема с повторной передачей некоторых полей с тегом <a4j:support>
. У меня есть таблица и сводная строка, которая отображает значения, рассчитанные в бэк-компоненте. Сводные ячейки ячеек должны автоматически обновляться после каждого изменения в других строках, поэтому в каждой ячейке, которая запускает обновление, у меня есть valueChangeListener
, который вызывает метод «пересчет» для компонента и <a4j:support reRender="[corresponding_summary_cell]" (...) />
. Проблема заключается в том, что я сначала загружаю страницы со столом, рендеринг не работает. Вызывается запрос Ajax, но возвращает какой-то «пустой» ответ. Только когда я перезагружаю представление (например, щелкнув ссылку на страницу), запросы начинают работать так, как планировалось, правильно обновлять соответствующие сводные ячейки.RichFaces <a4j:support> не берется с первой попытки
Вид-из-пустое содержание ответа фрагмент:
<body>
<meta name="Ajax-Update-Ids" content="" /><span id="ajax-view-state">
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id11" autocomplete="off" /></span>
<meta id="Ajax-Response" name="Ajax-Response" content="true" />
<meta name="Ajax-Update-Ids" content="" />
<span id="ajax-view-state">
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id11" autocomplete="off" />
</span>
<meta id="Ajax-Response" name="Ajax-Response" content="true" />
</body>
Ячейка, которая запускает пример расчета:
<customNamespace:moneyValue value="#{someAttribute}" id="field1" valueChangeListener="#{controller.calculateSums}">
<a4j:support event="onchange" reRender="Form-Table-Cost1Sum"/>
</customNamespace:moneyValue>
Строки в таблице добавляются dybnamically, но это только в первый раз (добавлена первая строка в пустую таблицу), что дает проблему, следующие строки работают нормально. Я также попробовал перепродать всю форму - ничего не изменилось.
TL; DR: Got ячейку таблицы, с которой должна АЯКС-обновление еще одну строку, работает только после перезагрузки, первый раз дает ответ, как засавить атрибут был пуст.