Jsf中进度条的用法
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中进度条的用法的更多相关文章
- AFHTTPSessionManager下载文件 及下载中 进度条处理,进度条处理需要特别注意,要加载NSRunLoop 中
1.下载文件 和进度条处理代码 - (void)timer:(NSTimer *)timer{ // 另一个View中 进度条progress属性赋值 _downloadView.progress = ...
- QT中进度条的使用
在QT中可以用QProgressBar或着QProgressDialog来实现进度条. QProgressBar的使用 首先在designer中拖一个按钮和进度条部件,按下面初始化 //补充:下面两句 ...
- 关于C# WinForm中进度条的实现方法
http://www.cnblogs.com/Sue_/articles/2024932.html 进度条是一个软件人性化考虑之一,他给用户的感觉就是程序内部在不停的动作,执行到了什么程度,而不是整个 ...
- Vue中进度条的使用
1. 安装npm install --save nprogress 2.导入js和css import NProgress from 'nprogress'import 'nprogress/npro ...
- SeekBar: 修改SeekBar中进度条的高度
SeekBar中有两个很特别的属性需要留意下: 1.android:maxHeight和android:minHeight .前者是用来指定进度条最大高度的(此高度并非SeekBar整个控件的高度), ...
- ASP.NET中进度条的简单应用
<html xmlns="http://www.w3.org/1999/xhtml" id="mainWindow"> <head> & ...
- Android中进度条
<ProgressBar android:id="@+id/progress_bar" android:layout_width="match_parent&quo ...
- android中进度条的实现
布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:androi ...
- Python中进度条如何实现
print源码,参数end默认值为换行符,需要置成空,就会实现打印一行的效果 import time for i in range(100): time.sleep(1)#sleep一秒再输出 # 需 ...
随机推荐
- Too many open files的四种解决办法【华为云技术分享】
[摘要] Too many open files有四种可能:一 单个进程打开文件句柄数过多,二 操作系统打开的文件句柄数过多,三 systemd对该进程进行了限制,四 inotify达到上限. 领导见 ...
- 性能达到原生 MySQL 七倍,华为云 Taurus 技术解读【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结.自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and故 ...
- 【集合系列】- 深入浅出的分析 Properties
一.摘要 在集合系列的第一章,咱们了解到,Map 的实现类有 HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.P ...
- python使用mysql的一些坑
注意:如果你用的是python3.x,直接去看第四个问题 遇到的第一个问题 正常来说直接执行pip安装,就是可以的,但是MySQL-python偏偏比较独特 pip install MySQL-pyt ...
- springboot+mybatis sql 打印在控制台
第一种方法 在mybatis文件夹下新建mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ? ...
- JavaScript基础5
字符串操作方法和属性 length 获取字符串的长度 str.chartAt(指定字符的索引) 获取指定位置的字符 返回string类型的值 str.concat(字符串) 链接多个字符串 ...
- ARTS-S 最难的事情
小朋友不舒服,看了医生也开了药吃了.但还是一直闹,不睡觉,弄的我和我爱人精疲力尽. 现在看来,技术上的难题真不算什么.照顾小朋友才是这个世界上最难的事情.
- Python3 模块基础
目录 模块 什么是模块 模块的四种形式 导入模块 import 模块 from 模块 import 方法 循环导入 模块搜索路径 Python文件的两种用途 包 什么是包 为什么要有包 包的使用 绝对 ...
- Python3 猜年龄小游戏进阶之函数处理
在猜年龄的基础上编写登录.注册方法,并且把猜年龄游戏分函数处理 登录函数 注册函数 猜年龄函数 选择奖品函数 # 注册 def register(): '''注册''' count = 0 while ...