/**
* 此文件描述的是:PageBean.java
*/
package cn.com.sohocat.util;
import cn.com.sohocat.common.Common;
/**
* @author blaiu
*
*/
public class PageBean {
private String keyword; //关键字
private String urlAction; //超链action路径
private int pageNo; //pageNo:页号表示当前是第几页
private int totalRecords; //totalRecords:查询的总记录数
private int pageSize = 10; //pageSize:页面可以显示多少条记录:初始化为10
private int totalPages; //totalPages:总共的页数
private int startRecord; //startRecord:起始记录
private int endRecord; //endRecord:末记录
private int firstPage = 1; //firstPage:第一页
private int lastPage; //lastPage:最后一页
private int nextPage; //nextPage:下一页
private int prevPage; //prevPage:上一页
private int navStartNo; //navStartNo:当前显示的起始页
private int navEndNo; //navEndNo:当前显示的最后一页
private int navSize = 10; //页面上要显示的页数
/**
*
* @param pageNo 页号
* @param totalRecords 总记录数
* @param keyword 关键字
* @param urlAction 路径
* @param pageSize 页面显示的记录数 默认10(当pageSize等于0时)
* @param navSize 页面显示的页数 默认10(当navSize等于0时)
*/
public PageBean(int pageNo, int totalRecords, String keyword, String urlAction, int pageSize, int navSize) {
this.keyword = keyword;
this.pageNo = pageNo;
this.totalRecords = totalRecords;
this.urlAction = urlAction;
if(pageSize != 0) {
this.pageSize = pageSize;
}
if(navSize != 0) {
this.navSize = navSize;
}
/**
* Math.ceil((double) (totalRecords / pageSize)):返回最小的(最接近负无穷大)double 值,该值大于或等于参数,并且等于某个整数
* totalPages:总页数
*/
this.totalPages = this.totalRecords / this.pageSize;
if((this.totalRecords % this.pageSize)>0) {
this.totalPages = this.totalPages + 1;
}
this.startRecord = (this.pageNo - 1) * this.pageSize;
this.endRecord = Math.min(this.startRecord + this.pageSize, this.totalRecords);
this.lastPage = this.totalPages;
/**
* Math.min(pageNo + 1, lastPage):比较两个参数的值,返回较小的一个
*/
this.nextPage = Math.min(this.pageNo + 1, lastPage);
/**
* Math.max:比较两个参数的值,返回较大的一个
*/
this.prevPage = Math.max(1, this.pageNo - 1);
this.navStartNo = Math.max(1, this.pageNo - this.pageSize / 2);
this.navEndNo = Math.min(this.navStartNo + this.navSize, this.lastPage);
if (this.navEndNo - this.navStartNo < this.navSize) {
this.navStartNo = Math.max(this.navEndNo - this.navSize, 1);
}
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public int getNavEndNo() {
return navEndNo;
}
public void setNavEndNo(int navEndNo) {
this.navEndNo = navEndNo;
}
public int getNavSize() {
return navSize;
}
public void setNavSize(int navSize) {
this.navSize = navSize;
}
public int getNavStartNo() {
return navStartNo;
}
public void setNavStartNo(int navStartNo) {
this.navStartNo = navStartNo;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPrevPage() {
return prevPage;
}
public void setPrevPage(int prevPage) {
this.prevPage = prevPage;
}
public int getStartRecord() {
return startRecord;
}
public void setStartRecord(int startRecord) {
this.startRecord = startRecord;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String toString() {
StringBuffer sb = new StringBuffer();
/**
* pageNo不等于1表示为:
*/
sb.append("共"+this.totalPages+"页 ");
String pageNoStr = "document.getElementById(\"pageNo\").value";
if (null != this.keyword) {
if (this.pageNo != 1 && this.totalPages > 0) {
sb.append("<a href=\"'"+urlAction+"'&pageNo=" + this.firstPage + "&keyword="
+ Common.encode(keyword) + "\">首页</a>");
sb.append(" ");
sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.prevPage + "&keyword="
+ Common.encode(this.keyword) + "\">上页</a>");
sb.append(" ");
}
// for (int i = this.navStartNo; i <= this.navEndNo; i++) {
// if (this.pageNo != i) {
// sb.append("[<a href=\""+this.urlAction+"&pageNo=" + i
// + "&keyword=" + Common.encode(this.keyword) + "\">" + i + "</a>]");
// sb.append(" ");
//
// } else {
// sb.append("[" + i + "]");
// sb.append(" ");
// }
// }
if (this.pageNo != this.lastPage && this.totalPages > 0) {
sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.nextPage + "&keyword="
+ Common.encode(this.keyword) + "\">下页</a>");
sb.append(" ");
sb.append("<a href=\"search.action?pageNo=" + this.lastPage + "&keyword="
+ Common.encode(keyword) + "\">末页</a>");
sb.append(" ");
}
} else {
if (this.pageNo != 1 && this.totalPages > 0) {
sb.append("<a href=\""+urlAction+"&pageNo=" + this.firstPage + "\">首页</a>");
sb.append(" ");
sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.prevPage + "\">上页</a>");
sb.append(" ");
}
// for (int i = this.navStartNo; i <= this.navEndNo; i++) {
// if (pageNo != i) {
// sb.append("[<a href=\""+this.urlAction+"&pageNo=" + i + "\">" + i + "</a>]");
// sb.append(" ");
// } else {
// sb.append("[" + i + "]");
// sb.append(" ");
// }
// }
if (this.pageNo != this.lastPage && this.totalPages > 0) {
sb.append("<a href=\""+this.urlAction+"&pageNo=" + this.nextPage + "\">下页</a>");
sb.append(" ");
sb.append("<a href=\""+urlAction+"&pageNo=" + this.lastPage + "\">尾页</a>");
}
}
sb.append(" 第<input type=\"text\" size=\"2\" id=\"pageNo\" value=\""+this.pageNo+"\"/>页");
sb.append(" ");
sb.append("<a href=\"javascript:jump()\">跳页</a>");
sb.append("<script>function jump(){var page =document.getElementById(\"pageNo\").value;if(page>"+this.totalPages+"){alert(\"您输入的值太大\");return}else if(page<0){alert(\"您输入的值太小\");return}else{document.location=\""+this.urlAction+"&pageNo=\"+"+pageNoStr+"+\"&keyword="+Common.encode(this.keyword)+"\"}}</script>");
return sb.toString();
}
public String getUrlAction() {
return urlAction;
}
public void setUrlAction(String urlAction) {
this.urlAction = urlAction;
}
public int getEndRecord() {
return endRecord;
}
public void setEndRecord(int endRecord) {
this.endRecord = endRecord;
}
}
action
public ActionForward link(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
log.debug("UserAction--->link--->start");
String pageNoStr = request.getParameter("pageNo");
String userName = request.getParameter("userName");
String isActive = request.getParameter("isActive");
String rank = request.getParameter("rank");
String isAudited = "";
//存放每页用户userid集合
StringBuffer buffer = new StringBuffer();
List<HoUserSohoTeam> sohoTeams = new ArrayList<HoUserSohoTeam>();
List<HoUserSohoVip> sohovips = new ArrayList<HoUserSohoVip>();
//去除重复key,临时存放
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
int count = iHoUser.queryALLCount(userName,isActive,isAudited, rank);
int pageNo;
if("".equals(pageNoStr)||pageNoStr == null ) {
pageNo = 1;
}
try {
int i = Integer.parseInt(pageNoStr);
if(i < 0) {
pageNo = 1;
}else {
pageNo = i;
}
} catch(NumberFormatException e) {
pageNo = 1;
}
String url;
if(userName==null && isActive==null && rank==null)
url = "user.do?method=link";
else
url = "user.do?method=link&userName="+userName+"&isActive="+isActive+"&rank="+rank+"&isAudited="+isAudited;
PageBean pageBean = new PageBean(pageNo, count, null,url, 0, 0);
request.setAttribute("page", pageBean);
request.setAttribute("pageStr", pageBean.toString());
request.setAttribute("pageNo", pageBean.getPageNo());
request.setAttribute("userName", userName);
request.setAttribute("isActive", isActive);
request.setAttribute("isAudited", isAudited);
request.setAttribute("rank", rank);
List<HoUser> list = iHoUser.queryHoUserByIf(userName, isActive, rank, isAudited,pageBean.getStartRecord(), pageBean.getPageSize());
for(int i = 0; i < list.size(); i++){
int id = list.get(i).getUserId();
if(!map.containsKey(id)){
map.put(id, id);
if(map.size() != 1){
buffer.append(", ");
}
buffer.append(id);
}
}
// log.debug("11buffer:"+buffer.toString());
if(!Common.isEmpty(buffer.toString())){
sohoTeams = iHoUserSohoTeam.queryByUserIDs(buffer.toString());
}
// for(int i = 0; i < sohoTeams.size(); i++){
// log.debug("-------->"+sohoTeams.get(i).getId()+":"+sohoTeams.get(i).getTeamId());
// }
buffer.delete(0, buffer.length());
map.clear();
for(int i = 0; i < sohoTeams.size(); i++){
int id = sohoTeams.get(i).getTeamId();
if(!map.containsKey(id)){
map.put(id, id);
if(map.size() != 1){
buffer.append(", ");
}
buffer.append(id);
}
}
// log.debug("22buffer:"+buffer.toString());
if(!Common.isEmpty(buffer.toString())){
sohovips = iHoUserSohoVip.queryByTeamIDs(buffer.toString());
}
request.setAttribute("sohovips", sohovips);
log.debug("sohoTeams:"+sohoTeams.size());
request.setAttribute("sohoTeams", sohoTeams);
request.setAttribute("lists", list);
buffer = null;
map = null;
return mapping.findForward("user");
}
在页面上加这个句就可以了
<div class="a">找到<span id="totalRecords">${page.totalRecords }<span>条记录。</div>
<div class="b" style="margin-right:50px;">${pageStr} </div>
分享到:
相关推荐
3 Android SqliteManager 源码.zip
内容概要:本文详细介绍了基于S7-200 PLC的煤矿排水系统智能控制方案,重点讨论了三台水泵(两台工作水泵和一台备用水泵)的联动与备援策略。系统通过超声波液位传感器实时监测水位,根据不同水位情况自动控制水泵的启停。具体而言,水位低时不启动水泵,水位介于中水位和高水位之间时启动1号水泵,水位超过高水位则启动1号和2号水泵共同工作。若1号或2号水泵出现故障,系统会自动启用3号备用水泵。此外,MCGS6.2组态画面用于实时监控水位和水泵状态,帮助操作员及时应对异常情况,确保矿井安全。 适合人群:从事煤矿自动化控制领域的技术人员、矿业工程管理人员及相关研究人员。 使用场景及目标:适用于需要提高煤矿排水系统自动化水平的场合,旨在提升矿井排水效率和安全性,减少人工干预,确保矿井生产安全。 其他说明:文中提到的技术方案不仅提高了排水系统的可靠性,还为未来的智能化矿山建设提供了有益借鉴。
scratch少儿编程逻辑思维游戏源码-灌篮之王.zip
scratch少儿编程逻辑思维游戏源码-飞翔马里奥(2).zip
scratch少儿编程逻辑思维游戏源码-火柴人大战 中世纪战争.zip
scratch少儿编程逻辑思维游戏源码-几何冲刺(2).zip
南京证券-低轨卫星互联网启动,天地一体通信迈向6G
nginx-1.20.1
sshpass-1.06-8.ky10.aarch
少儿编程scratch项目源代码文件案例素材-我的世界2D(更新北极).zip
通信行业专题研究:车载全息数字人——AI+Agent新场景,全息投影新方向-20231121-国盛证券-13页
内容概要:本文详细介绍了利用西门子S7-200 PLC和组态王软件构建的邮件分拣系统的具体设计方案和技术细节。首先,文中阐述了硬件部分的设计,包括光电传感器、传送带电机以及分拣机械臂的连接方式,特别是旋转编码器用于精确测量包裹位移的技术要点。接着,展示了PLC编程中的关键代码段,如初始化分拣计数器、读取编码器数据并进行位置跟踪等。然后,描述了组态王作为上位机软件的作用,它不仅提供了直观的人机交互界面,还允许通过简单的下拉菜单选择不同的分拣规则(按省份、按重量或加急件)。此外,针对可能出现的通信问题提出了有效的解决方案,比如采用心跳包机制确保稳定的数据传输,并解决了因电磁干扰导致的问题。最后,分享了一些现场调试的经验教训,例如为减少编码器安装误差对分拣精度的影响而引入的位移补偿算法。 适合人群:从事自动化控制领域的工程师或者对此感兴趣的初学者。 使用场景及目标:适用于需要提高邮件或其他物品自动分拣效率的企业或机构,旨在降低人工成本、提升工作效率和准确性。 其他说明:文中提到的实际案例表明,经过优化后的系统能够显著改善分拣性能,将分拣错误率大幅降至0.3%,并且日均处理量可达2万件包裹。
scratch少儿编程逻辑思维游戏源码-机械汽车.zip
内容概要:本文详细探讨了在连续介质中利用束缚态驱动设计并实现具有最大和可调谐手征光学响应的平面手征超表面的方法。文中首先介绍了comsol三次谐波和本征手性BIC(束缚态诱导的透明)两种重要光学现象,随后阐述了具体的手征超表面结构设计,包括远场偏振图、手性透射曲线、二维能带图、Q因子图和电场图的分析。最后,通过大子刊nc复现实验验证了设计方案的有效性,并对未来的研究方向进行了展望。 适合人群:从事光学研究的专业人士、高校物理系师生、对光与物质相互作用感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解手征超表面设计原理及其光学响应机制的研究人员,旨在推动新型光学器件的研发和技术进步。 其他说明:本文不仅展示了理论分析和模拟计算,还通过实验证明了设计方法的可行性,为后续研究奠定了坚实的基础。
少儿编程scratch项目源代码文件案例素材-位图冒险.zip
少儿编程scratch项目源代码文件案例素材-校园困境2.zip
少儿编程scratch项目源代码文件案例素材-兔子吃萝卜.zip
scratch少儿编程逻辑思维游戏源码-海洋战争.zip
房地产 -前策标准化-沪浙一部.pptx
scratch少儿编程逻辑思维游戏源码-克里斯历险记3.zip