显示一步一步处理 - JSF

时间:2016-05-24 05:20:22

标签: jsf jsf-2 richfaces

我正在使用JSF 2.x和richfaces。我有以下要求实施。

Please wait

此图像描述步骤1已成功完成,步骤2正在进行中,步骤3尚未启动。

我有以下支持bean代码

public void doAllSteps() {
   // set step1 flag started
   // do step1
   // set step1 flag success
   // set step2 flag under_progress
   // do step2
   // set step2 flag success
   // set step3 flag under_progress
   // do step3
   // set step 3 flag success
}

// There will be getters for all the flags

现在,我在.xhtml页面中执行了

<a4j:poll id="poll" interval="1000" enabled="true" render="gr-img-status-panel" />

<a4j:outputPanel id="gr-img-status-panel">
    <div class="row mr-top1">
        <div class="col-xs-12">

            <h4 class="text-white text-left">
                Step 1
                <h:panelGroup rendered="#{myBean.step1Status eq 0}">
                    (Processing ...)
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step1Status eq 1}">
                    <span style="color: green;">&#x2714;</span>
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step1Status eq 2}">
                    <span style="color: red;">&#x2717;</span>
                </h:panelGroup>
            </h4>

            <h4 class="text-white text-left">
                Step 2 
                <h:panelGroup rendered="#{myBean.step2Status eq 0}">
                    (Processing ...)
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step2Status eq 1}">
                    <span style="color: green;">&#x2714;</span>
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step2Status eq 2}">
                    <span style="color: red;">&#x2717;</span>
                </h:panelGroup>
            </h4>

            <h4 class="text-white text-left">
                Step 3 
                <h:panelGroup rendered="#{myBean.step3Status eq 0}">
                    (Processing ...)
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step3Status eq 1}">
                    <span style="color: green;">&#x2714;</span>
                </h:panelGroup>
                <h:panelGroup rendered="#{myBean.step3Status eq 2}">
                    <span style="color: red;">&#x2717;</span>
                </h:panelGroup>
            </h4>

        </div>
    </div>
</a4j:outputPanel>

我还有a4j:commandButton执行doAllSteps()

问题

当我第一次加载页面a4j轮询开始时(对我来说没问题)。但是一旦我点击a4j:commandButton,轮询就会停止。在a4j:commandButton完全执行a4j轮询后再次启动。所以这意味着我不能同时执行2个a4j请求。

我如何实现目标?

0 个答案:

没有答案