Jsf中进度条的用法

前端页面

 <!-- 进度条 -->
<p:progressBar widgetVar="pbAjax" ajax="true"
value="#{ProjectPackageManageBackingBean.progress}" labelTemplate="{value}%"
styleClass="animated" global="false" id="pbAjax" >
<p:ajax event="complete" listener="#{ProjectPackageManageBackingBean.onComplete}"
update=":form:message,:form:pbAjax,:form:shade" />
</p:progressBar>

后端bean层逻辑

     /** 进度条展示   **/
private Integer progress = 0; public Integer getProgress()
{
if (progress == null)
{
progress = 0;
}
try
{
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (progress == null)
{
progress = 0;
}
else
{
progress = rateCalculate(progressSum, progressDo); if (progress >= 100) progress = 100;
}
return progress;
} public void setProgress(Integer progress)
{
this.progress = progress;
}
// 进度条完成事件
public void onComplete()
{
// 进度百分比置空
progress = null;
// 总数量置空
progressSum=null;
// 选择数量置空
progressDo=null;
}
private Integer progressSum;// 总的勾选数量
private Integer progressDo;// 完成的数量 public Integer getProgressSum()
{
return progressSum;
} public void setProgressSum(Integer progressSum)
{
this.progressSum = progressSum;
} public Integer getProgressDo()
{
return progressDo;
} public void setProgressDo(Integer progressDo)
{
this.progressDo = progressDo;
}
// 计算百分比工具方法
public static Integer rateCalculate(Integer sum, Integer doSum)
{
if (sum == null)
{
return 0;
}
if (doSum == null)
{
return 0;
}
if (sum == 0 || doSum == 0)
{
return 0;
}
// 创建一个数值格式化对象
NumberFormat numberFormat = NumberFormat.getInstance();
// 设置精确到小数点后2位
numberFormat.setMaximumFractionDigits(2);
// 获取到结果
String result = numberFormat.format((float)doSum/(float)sum*100);
// 获取.出现的位置
int indexOf = result.indexOf(".");
int parseInt = 0;
// 如果没有小数则直接取值
if (indexOf==-1)
{
parseInt=Integer.parseInt(result);
}
else
{
// 截取
String substring = result.substring(0, indexOf);
// 转化
parseInt = Integer.parseInt(substring);
}
return parseInt;
}

通过计算任务的百分比,进度条会一直监听百分比,当达到百分百后,会触发进度条的完成事件,并将进度条置空,回到最初状态。

Jsf中进度条的用法的更多相关文章

  1. AFHTTPSessionManager下载文件 及下载中 进度条处理,进度条处理需要特别注意,要加载NSRunLoop 中

    1.下载文件 和进度条处理代码 - (void)timer:(NSTimer *)timer{ // 另一个View中 进度条progress属性赋值 _downloadView.progress = ...

  2. QT中进度条的使用

    在QT中可以用QProgressBar或着QProgressDialog来实现进度条. QProgressBar的使用 首先在designer中拖一个按钮和进度条部件,按下面初始化 //补充:下面两句 ...

  3. 关于C# WinForm中进度条的实现方法

    http://www.cnblogs.com/Sue_/articles/2024932.html 进度条是一个软件人性化考虑之一,他给用户的感觉就是程序内部在不停的动作,执行到了什么程度,而不是整个 ...

  4. Vue中进度条的使用

    1. 安装npm install --save nprogress 2.导入js和css import NProgress from 'nprogress'import 'nprogress/npro ...

  5. SeekBar: 修改SeekBar中进度条的高度

    SeekBar中有两个很特别的属性需要留意下: 1.android:maxHeight和android:minHeight .前者是用来指定进度条最大高度的(此高度并非SeekBar整个控件的高度), ...

  6. ASP.NET中进度条的简单应用

    <html xmlns="http://www.w3.org/1999/xhtml" id="mainWindow"> <head> & ...

  7. Android中进度条

    <ProgressBar android:id="@+id/progress_bar" android:layout_width="match_parent&quo ...

  8. android中进度条的实现

    布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:androi ...

  9. Python中进度条如何实现

    print源码,参数end默认值为换行符,需要置成空,就会实现打印一行的效果 import time for i in range(100): time.sleep(1)#sleep一秒再输出 # 需 ...

随机推荐

  1. [ch05-01] 正规方程法解决多变量线性回归问题

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 5.1 正规方程解法 英文名是 Normal Equat ...

  2. Rancher1-简单介绍-认识rancher

    认识rancher 一.简介 1.什么rancher Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes.使用Rancher,组织不再需要使用一套独特的开 ...

  3. (全国多校重现赛一)D Dying light

    LsF is visiting a local amusement park with his friends, and a mirror room successfully attracts his ...

  4. centos与内核版本对应关系

    centos是基于redhat的二次开发,redhat会封装不同版本的内核,有时候,我们需要指定内核版本的centos,下面两个网站或许对你有帮助: https://access.redhat.com ...

  5. pyplot概述

            matplotlib.pyplot 是命令行风格的函数集,让matplotlib看起来像MATLAB.Each一样工作.pyplot函数能够对画布(figure)进行一些改变,例如:创 ...

  6. web性能优化指南

    前端性能优化,是每个前端必备的技能,优化自己的代码,使自己的网址可以更加快速的访问打开,减少用户等待,今天就会从几个方面说起前端性能优化的方案, 看下面的一张图,经常会被面试官问,从输入URL到页面加 ...

  7. 【spring boot】配置信息

    ======================================================================== 1.feign 超时配置 2.上传文件大小控制 3.J ...

  8. 【ActiveMQ】使用学习

    [ActiveMQ]使用学习 转载: 1.启动 activemq start 2.停止 activemq stop http://localhost:8161 admin / admin Queue ...

  9. Label自适应高度的用法及设置倒角

    UILabel *label = [[UILabel alloc] init]; //根据内容动态计算label的高度 label.text = @"Sent when the applic ...

  10. 用正则表达式【regexp】进行高级搜索数据

    正则表达式介绍 正则表达式是用来匹配文本的特殊字符集合,如果你想从一个文本中提取电话号码而已使用正则表达式,如果你需要查找名字中包含数字的所有文件可以使用正则,如果你你要在文本块中找到所有重复的单词, ...