gpt4 book ai didi

java - 如何在 Spring Web Flow 中执行任务并显示其进度

转载 作者:行者123 更新时间:2023-12-01 05:49:50 25 4
gpt4 key购买 nike

我必须自动执行任务,并在进入流程时向客户端显示其进度。任务完成后,它应该重定向到另一个流程。进度应通过 PrimeFaces p:progressBar

显示

有什么想法吗?

最佳答案

这个问题是一年多前提出的,但这里有一些代码片段,希望将来能对其他人有所帮助:

    <h:panelGrid>
<p:progressBar widgetVar="progressBar" ajax="true" value="#{archiveCopyCreator.progress}" interval="1000" labelTemplate="{value}%" styleClass="animated" style="width: 500px;">
<p:ajax event="complete" listener="#{archiveCopyCreator.onComplete}"/>
</p:progressBar>
<h:panelGrid styleClass="centered">
<p:commandButton value="Avbryt" action="cancel" ajax="false" immediate="true" />
</h:panelGrid>
</h:panelGrid>

<script type="text/javascript">
$(document).ready(function() {
progressBar.start();
});
</script>

我创建了一个进度条,并根据我的一个 bean 中的值更新它。完成后,将对 bean 进行 ajax 调用。进度条是使用 JavaScript 手动启动的。

@Component
public class ArchiveCopyCreator implements Serializable {

private static final long serialVersionUID = 1L;

protected Integer progress;

public Integer getProgress() {
if (this.progress == null) {
this.progress = 0;
} else {
this.progress = this.progress + (int) (Math.random() * 15);

if (this.progress > 100) {
this.progress = 100;
}
}

return this.progress;
}

public void setProgress(final Integer progress) {
this.progress = progress;
}

public void cancel() {
this.progress = null;
}

public void reset() {
this.progress = null;
}

public boolean hasProgress() {
return this.progress != null;
}

public void onComplete() {
RequestControlContext requestContext = (RequestControlContext) RequestContextHolder.getRequestContext();
this.objektidentiteter = null;
this.progress = null;
requestContext.handleEvent(new Event(this, "complete"));
return;
}

}

在此示例中,实际进度是使用 Math.random 伪造的。

请注意,onComplete() 是使用 ajax 从 ProgressBar 调用的。该 javacode 使用 id“complete”转换到我的下一个 Spring Webflow 状态。

记住为每个用户/流创建一个新的支持 bean...我的示例中的 ArchiveCopyCreator 是一个 @Component,因为我想在流和用户之间共享它。

关于java - 如何在 Spring Web Flow 中执行任务并显示其进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5013721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com