2016-08-11 2 views
0

Я использую 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 ячейку таблицы, с которой должна АЯКС-обновление еще одну строку, работает только после перезагрузки, первый раз дает ответ, как засавить атрибут был пуст.

ответ

0

Попробуйте добавить один экземпляр вашего компонента над таблицей с атрибутом rendered="false". Это позволит убедиться, что JSF загрузил все необходимое для обработки тегов.

Смежные вопросы