如何在另一个进度条使用完JSF Primefaces 5.2后启动进度条?
我是JSF新手,我面临着一些问题,上面的问题就是其中之一,我在任何地方都找不到解决方案 我的场景是:如何在另一个进度条使用完JSF Primefaces 5.2后启动进度条?,jsf,jsf-2,primefaces,progress-bar,Jsf,Jsf 2,Primefaces,Progress Bar,我是JSF新手,我面临着一些问题,上面的问题就是其中之一,我在任何地方都找不到解决方案 我的场景是: 我有一个进度条列表,每个进度条负责显示方法执行的进度(此方法只包含一个带有Thread.sleep()的for循环来模拟需要一些时间的任务,我将此方法用于所有进度条) 每个进度条都有一个按钮,负责取消任务 还有一个按钮负责启动第一个“任务” 我需要什么: 单击“开始”按钮后,我需要它来启动第一个任务,从而启动第一个进度条。 完成后,必须开始下一个任务,因此需要下一个进度条。 第二个任务完成后,第
<h:form>
<br/>
<p:outputLabel for="botao-iniciar">Iniciar transferências:</p:outputLabel>
<p:commandButton id="botao-iniciar" onclick="PF('pbAjax-1').start()"
widgetVar="startButton" value="Iniciar" />
<br/><br/>
<p:separator />
<ui:repeat var="transf" value="#{transferenciaStatusMB.listaTransferencia}">
<h:panelGrid style="width:100%">
<p:outputLabel>Transferência ID: #{transf.id}</p:outputLabel>
<p:progressBar widgetVar="pbAjax-#{transf.id}" ajax="true"
value="#{transferenciaStatusMB.getProgresso(transf)}"
labelTemplate="{value}%" global="false" interval="1000" >
<p:ajax event="complete"
listener="#{transferenciaStatusMB.onComplete(transf)}" />
</p:progressBar>
<p:commandButton widgetVar="cancelButton-#{transf.id}" value="Cancelar"
actionListener="#{transferenciaStatusMB.cancelar(transf)}"
oncomplete="PF('cancelButton-#{transf.id}').disable();" >
</p:commandButton>
<p:separator />
</h:panelGrid>
</ui:repeat>
</h:form>
INCIIAR transferências:
传输ID:#{transf.ID}
下面是bean使用的方法:
// Simulate task (based on the Primefaces' showcase example):
public Integer getProgresso(Transferencia transferencia) {
if(transferencia.getProgresso() == null) {
transferencia.setProgresso(0);
} else {
System.out.printf("Progress Transference ID %d: %d.\n", transferencia.getId(), transferencia.getProgresso());
if(transferencia.getProgresso() < 100){
transferencia.setProgresso(
transferencia.getProgresso() + (int)(Math.random() * 35));
if(transferencia.getProgresso() > 100) {
transferencia.setProgresso(100);
}
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return transferencia.getProgresso();
}
// Cancel a task:
public void cancelar(Transferencia transferencia) {
transferencia.setProgresso(null);
System.out.println("Transferencia ID " + transferencia.getId() +" CANCELADA!");
}
// After a task is completed:
public void onComplete(Transferencia transferencia) {
System.out.println("Transferencia ID " + transferencia.getId() +" FINALIZADA!");
}
//模拟任务(基于Primefaces的showcase示例):
公共整数getProgresso(Transferncia Transferncia){
if(transferncia.getProgresso()==null){
移情性进展(0);
}否则{
System.out.printf(“进度传输ID%d:%d.\n”,transferencia.getId(),transferencia.getProgresso());
if(transferncia.getProgresso()<100){
移情(
transferncia.getProgresso()+(int)(Math.random()*35));
如果(transferncia.getProgresso()>100){
转移性进展(100);
}
}
试一试{
《睡眠》(2000年);
}捕捉(中断异常e){
e、 printStackTrace();
}
}
返回transferncia.getProgresso();
}
//取消任务:
公共无效取消人(Transferncia Transferncia){
transferncia.setProgresso(空);
System.out.println(“transferncia ID”+transferncia.getId()+“CANCELADA!”);
}
//任务完成后:
未完成的公共空间(Transferncia Transferncia){
System.out.println(“transferncia ID”+transferncia.getId()+“FINALIZADA!”);
}
您应该发布源代码类Transferencia.java
。我不知道引擎盖下面是什么。嗨,@ỗNhưVý!Transferencia.java是一个POJO。您应该发布源代码类Transferencia.java
。我不知道引擎盖下面是什么。嗨,@ỗNhưVý!java是一个POJO。