gpt4 book ai didi

PrimeFaces progressBar 不更新状态

转载 作者:行者123 更新时间:2023-12-01 13:34:55 25 4
gpt4 key购买 nike

我想在流程完成后在 PrimeFaces 上隐藏一个进度条。我认为没有必要在不工作时显示进度条。

html代码:

<div class="container marketing" style="margin-top: 2%;">
<div class="row">
<div class="col-md-4">
<img class="img-circle" title="Pedir WD"
width="60" height="60" border="0" style="display: block; margin: auto"/>
<h2 style="text-align: center !important">Arena 2</h2>
<center>
<p>Exportación del <strong>01/01/<h:outputLabel value="#{registroDriver.anoActual}"/>
</strong> hasta el <h:outputLabel value="#{registroDriver.ahora}"/></p>
<p:commandButton value="Iniciar Petición" onclick="PF('pbAjax').start();
PF('startButton2').disable();" widgetVar="startButton2" actionListener="#{registroDriver.gestionRS()}"/>
</center>
</div>
</div>
</div>
<div style="margin-top: 5%">
<p:poll interval="2" update="pgBar"/>
<p:progressBar id="pgBar" widgetVar="pbAjax" ajax="true" value="#{registroDriver.progress}" labelTemplate="{value} % - #{registroDriver.estadoActual}"
global="false" styleClass="animated">
<p:ajax event="complete" listener="#{registroDriver.onComplete()}" update="growl, linkWD" oncomplete="PF('startButton2').enable();"/>
</p:progressBar>
</div>
<h:panelGrid id="linkWD" style="margin-top: 3%; display: block;">
<h:outputText value="#{correo.URL_LINK}" rendered="#{registroDriver.finProceso eq true}"/>
</h:panelGrid>

java代码:

private Integer progress = 0;
private Integer porcentajeCompletado = 0;
private boolean controlProgreso = true;
private String estadoActual = "";
private boolean finProceso = false;

public void gestionRS() throws ClassNotFoundException,
InstantiationException, IllegalAccessException, SQLException,
IOException, FileNotFoundException, AddressException {
System.out.println("[Conectando ...]");
System.out.println("Registrando Driver JDBC/TERADATA ...");
Class.forName(JDBC_DRIVER_TERAD).newInstance();
Connection con = DriverManager.getConnection(DB_URL_TERAD, tUser, tPass);

fCopy.fileCopy(PATH_ACCDB_LIMPIA, "accdb", PATH_DESTINO);
fCopy.fileCopy(PATH_CABECERA_MAIL, "png", PATH_DESTINO);

this.porcentajeCompletado = 5; // Estamos al 5%
estadoActual = "Conexión establecida.";
System.out.println(this.progress);
this.controlProgreso = false;
String nombreArchivoAccess = "WD_" + fechaActual.fechaActual() + ".accdb";
File archivoAccess = new File(nombreArchivoAccess);
this.porcentajeCompletado = 5; // Estamos al 10%
System.out.println(this.progress);
this.controlProgreso = false;
Database db = DatabaseBuilder.open(archivoAccess);
RSet2Access rs2Acces = new RSet2Access();

rs2Acces.resultSetToAccess(rs1, archivoAccess, db);
this.porcentajeCompletado = 10;
System.out.println(this.progress);
this.controlProgreso = false;
estadoActual = "Confeccionada rs1";

db.close();
con.close();

System.out.println("\n[Conexión Cerrada]");
this.tamanoBase = size.tamanoArchivo(nombreArchivoAccess);
System.out.println("\nArchivo " + nombreArchivoAccess + " generado correctamente (" + this.tamanoBase + ")");

try {
zip.zipFiles(nombreArchivoAccess);
this.porcentajeCompletado = 40; // Sumamos los 2 procesos
this.controlProgreso = false;

// Subimos el ZIP al FTP
ftp.uploadFile(zip.getNameSaveZIP());
this.porcentajeCompletado = 5;
this.controlProgreso = false;
estadoActual = "Subiendo " + zip.getNameSaveZIP() + " al servidor ...";

File fDel = new File(nombreArchivoAccess);
String maniobra = fDel.getAbsolutePath();

Thread.sleep(1500);
fd.eliminarFicheroRaiz(maniobra);
fd.eliminarFicheroRaiz(zip.getNameSaveZIP());
this.porcentajeCompletado = 5;
this.controlProgreso = false;
estadoActual = "Eliminando archivos locales ...";

// Enviamos el mail
mail.enviarMail(zip.getNameSaveZIP());
fd.eliminarFicheroRaiz("cabeceraNueva.png");
this.porcentajeCompletado = 10;
this.controlProgreso = false;
estadoActual = "Proceso terminado";
} catch (Exception e) {
e.printStackTrace();
}
finProceso = true;
onComplete();
}

我遇到的问题是:我添加到 % 的状态变量字符串不更新,只显示 % 中的值(变量 int)。非常有趣的是,html 代码上的 panelgrid 在进度条完成时显示(值 = 100)。

谢谢大家。

最佳答案

在你的 p:commandButton 上使用 async="true"。没有它,它会“阻塞”其他 Ajax 请求,因为它们默认排队(async 默认为 false)。

关于PrimeFaces progressBar 不更新状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44276298/

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