Jsf Primefaces进度条实时更新
我目前正在尝试将进度条合并到我的应用程序中,以显示任务的当前进度。该任务使用web服务从服务器检索文件。我没有访问此web服务的权限,因此无法将任何代码放入其中 我的代码如下: 我需要显示以下项目进度的方法:Jsf Primefaces进度条实时更新,jsf,primefaces,Jsf,Primefaces,我目前正在尝试将进度条合并到我的应用程序中,以显示任务的当前进度。该任务使用web服务从服务器检索文件。我没有访问此web服务的权限,因此无法将任何代码放入其中 我的代码如下: 我需要显示以下项目进度的方法: public URL checkout(String docCid, String fileCid) { String userId="aaaaaa"; FVConnectData fvData = new FVConnectData(); fvData
public URL checkout(String docCid, String fileCid)
{
String userId="aaaaaa";
FVConnectData fvData = new FVConnectData();
fvData.setWsKeyword("aaaaa");
fvData.setWsUrl("http://aaaaa.com");
FVConnector con = new FVConnector(fvData);
System.out.println("Method checkout called");
URL url = null;
try
{
//This is where the web service is called
url = con.checkoutFile(docCid, fileCid, userId, "aaaa", "aaaa", false);
System.out.println("URL: " + url.toString());
return url;
}
catch (Exception e)
{
System.out.println("ERROR: " + e.getMessage());
e.printStackTrace();
return null;
}
}
我的问题是:
如何调整此方法,以便为primefaces GUI提供方法的实时进度,以显示给用户
编辑:
我在网上找到的唯一真实示例使用随机进度显示在进度条上。我不想要这个,我想要真正的(或足够接近的)进步。另外,由于无法访问web服务,我无法确定文件的大小。为什么不使用
AjaxStatus
。这是我的建议,我认为可以更简单一些。在签出
未完成之前,您将显示AjaxStatus
,方法完成为任务后,您可以显示一条消息(错误或成功)。您的意思是代替进度条吗?或者在进度条旁边?我不确定我是否完全理解AjaxStatus
。据我所知,它有两个属性-开始和完成。因此,我可以设置一条消息来说明流程何时开始,一条消息来说明流程何时完成(无论是成功还是错误),中间没有任何内容。这是正确的吗?@ColdHack如果是这样的话,这并不是我真正想要的,因为在我解决问题之前,我会使用一个BlockUI在加载gif的过程中显示。但是,由于进程的时间因文件大小的不同而变化很大,因此完成进程可能需要很长时间,并且不清楚进程是否正在执行或是否已停止。因此,我一直在寻找一种尽可能多地持续跟踪过程的方法。有什么建议吗?我假设你在p:commandButton
上调用这个方法,对吗?如果正确,只需添加ajax状态组件,然后在onStart
属性上调用带有gif图像(可以是gif进度条)的p:dialog
。在oncomplete
上,您只需隐藏对话框。