Можно ли рендерить / обновлять ac: forEach карты через ajax? - PullRequest
0 голосов
/ 21 июня 2019

Я считаю, что JSF 2.2 не выполняет итерации в течение Map с, поэтому необходимо использовать c:forEach.

У меня есть кнопка, которая добавляет объект в Map через Ajax.После этого он render отображает список существующих объектов в Map.Я зарегистрировал это, и значения вставлены хорошо.Проблема в том, что они не обновляются / обновляются правильно на странице xhtml - ну, иногда они есть, иногда нет.

<h:commandButton action="#{myController.addValue()}" type="submit" value="Add">
    <f:ajax execute="@this input1 input2" render="@form" /> 
</h:commandButton>
...
<h:panelGroup id="valuelist">

    <!-- This does not refresh properly -->
    <c:forEach items="#{myController.main.values}" var="entry">
        #{entry.value.name} / #{entry.value.description}
    </c:forEach>

    <!-- This does refresh properly -->
    <ui:repeat var="entry" value="#{myController.main.values.entrySet().toArray()}">
        #{entry.value.name} / #{entry.value.description}
    </ui:repeat>

</h:panelGroup>

Я полагаю, это что-то, связанное с фазами JSF.Я нашел решение, которое использует ui:repeat, но оно преобразует Map в массив, поэтому я не уверен, что оно очень эффективно.Как я могу правильно сделать обновление c:forEach?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...