Estou com uma problema com jsf e gostaria da ajuda de vocês.
Situação: Através de uma ação em um
Eu gostaria de atualizar um
ps. não gostaria de usar
A minha solução atual: Pensei em utilizar uma Thread (no managerBean) que iria ficar capturando o status do processo e fazendo o set de um atributo do managerBean.
Códigos:
Pagina xhtml:<h:commandButton value="Iniciar" action="#{myBean.executar}" />
<h:outputLabel id="status" value="#{myBean.statusValidation}" />
@ManagedBean(name = "myBean")
@SessionScoped
public class myBean {
private UpdateLabel update = new UpdateLabel();
private String statusValidation = null;
public String getStatusValidation() {
return statusValidation;
}
public void setStatusValidation(String statusValidation) {
this.statusValidation = statusValidation;
}
public String executar() {
Thread UpdateLabel = new Thread(update);
UpdateLabel.start();
Process process = new Process();
process.executeProcess();
return "";
}
private class UpdateLabel implements Runnable {
public void run() {
while (true) {
try {
setStatusValidation(Process.getStatus());
Thread.sleep(2 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
Alguém poderia dar uma ajuda?
Estou fazendo a coisa certo? Caso não, o que posso fazer diferente?