我正在尝试基于此使用 AJAX 更新转发器列表:如何使用 <f:ajax render> 重新渲染 <ui:repeat>
但是 HTML 列表在第一次加载后不会更新,即使 ManagedBean 中的 ArrayList 是。
这是我的 xHTML 文件中的内容:
<h:form>
<h:panelGroup id="messages">
<a4j:repeat var="mes" value="#{talking.listMessages}">
<h:outputText value="#{mes.sendTime}">
<f:convertDateTime type="date" pattern="dd-MM-yyyy HH:mm"/>
</h:outputText>
#{mes.content}
</a4j:repeat>
</h:panelGroup>
<a4j:commandLink action="#{talking.testAdd}">
<h:outputText value="Add Item" />
<f:ajax execute="@form" render="messages" />
</a4j:commandLink>
</h:form>
在 MB 中,我做了这个简单的动作:
private ArrayList<Message> listMessages;
public void testAdd() {
this.listMessages.add(new Message(/* [...] */));
}
我错过了什么 ?