JSF ViewState和异步Ajax-Requests

时间:2016-09-05 08:31:28

标签: ajax spring jsf asynchronous

我有一个页面,我在其中添加动态标签从一个bean TabView并执行一些异步操作。

<h:form id="requestForm">
                    <p:panel id="requestPanel" header="SQL"
                        styleClass="noBorder">
                        <p:remoteCommand name="updateMainForm" process=":requestForm" actionListener="#{tabbedView.update()}" update="#{tabbedView.idsToUpdate}"/>
                        <p:tabView id="myTabPanel" binding="#{tabbedView.tabview}" />
                        <f:facet name="actions">
                            <p:commandButton value="Ajout Onglet" icon="fa faw fa-plus grey" actionListener="#{tabbedView.add}" 
                                process=":requestForm" update="requestForm" async="true"
                                styleClass="ui-panel-titlebar-icon white secondBtn" />
                        </f:facet>
                    </p:panel>
                </h:form>

添加标签的Bean方法

@Async
public void add() {
    System.out.println("Begin add");
    Tab newTab = new Tab();
    controllers.add(controller);
    newTab.setTitle("Onglet "+tabs.size());
    newTab.setId("tab"+tabs.size());
    System.out.println("Finish add");
    newTab.getChildren().add(createForm(tabs.indexOf(newTab)));
    this.tabview.getChildren().add(newTab);
}

使用async = true,每个方法都是异步运行的,每个组件一旦可用就加载,但是只有最后准备好的组件才能运行。所有其他组件都丢失了。 有没有办法来制作这个?

0 个答案:

没有答案