手机版

JSP实现带查询条件的通用分页组件

时间:2021-08-23 来源:互联网 编辑:宝哥软件园 浏览:

分页功能的代码就是这样的,在需要展示列表的页面,我们基本都需要加上分页功能,如果某天老板想要修改分页功能的样式,我们不能去一个一个的改吧。

下边给大家分享一个自己封装的通用分页组件。

1.效果展示

2.使用方式

1 )在需要显示分页信息的位置,直接引入pagination.jsp页面。

!-分页内容-% @ include file='/WEB-INF/decorator/paging。JSP“%!-分页内容结束- 2 )在爪哇岛代码中

控制器层代码:

@必需的会话(' func _ vasadmin _ usermonelist ')@请求映射('/user/money/list ')公共字符串列表(模型模型,ServletRequest请求){ //获取所有的查询条件参数(为了使用方便,所有查询条件的参数命名前缀都是search_ ')映射字符串,对象搜索参数=webutils。getparameterstatingwith(请求、“search _”;//获取分页页码信息和每页条数int页码=page util。GetTargetPage(请求);int PageSize=Pageutil。GetPageSize(请求);页面页面=新页面(页面大小,页面编号);//查询需要展示的内容listsusermonelist=vasmoneservice。getusermonelist(页面,搜索参数);model.addAttribute('data ',list);model.addAttribute('page ',page);//将搜索条件编码成字符串,用于排序,分页的网址模型。addattribute('搜索参数',page util。encodepatameterstringwith前缀(搜索参数,“search _”);返回“vas admin/user _ money _ list”;}服务层代码:

公共列表用户货币获取用户货币列表(页面、映射字符串、对象搜索参数){ //从地图中获取查询条件长用户标识=(长)数据转换列表。数据2(搜索参数。get(' userId '),DataConvertUtil .数据类型(长);Long minMoney=(Long)data convertutil。数据2(搜索参数。get(' minMoney '),DataConvertUtil .数据类型(长);Long MaxMoney=(Long)DataConvertutil。数据2(搜索参数。get(' maxMoney '),DataConvertUtil .数据类型(长);//查询总条数int TotLeelements=VasMoneyDao。GetUserMoneyListCount(数据库名.DB_TATA_MONEY,userId,minMoney,maxMoney);//设置总条数佩奇。settle elements(Totle elements);//查询需要展示的数据返回VasMoneyDao。GetUserMoneyList(数据库名.DB_TATA_MONEY、userId、minMoney、maxMoney、page.getStartNum()、page。getendnum());}**每次需要分页,只需要操作上边这两步,是不是很简单啊~~。**接下来,给大家贴出封装的pagination.jsp代码,和其它的一些帮助类的代码。

**3.代码示例**

pagination.jsp(封装的通用分页代码)

“% @”页面语言=“Java”页面编码=“UTF-8”% @ taglib前缀=' c ' uri=' http://Java。星期日com/JSP/JSTL/core % @ taglib前缀=' fn ' uri=' http://Java。星期日com/JSP/JSTL/functions“%!-分页信息-div class=' row ' div class=' col-MD-3页码'每次显示select class=' form-control input-mini ' on change=' self。位置。href=选项[selectedIndex].值'选项值='?页码=1页大小=10 $ { search params } ' c : if test=' $ { page。页面大小eq ' 10 ' } '已选择/c:if10/option option value='?页码=1页大小=50 $ { search params } ' c : if test=' $ { page。页面大小eq ' 50 ' } '已选择/c:if50/option option value='?页码=1页大小=100 $ { search params } ' c : if test=' $ { page。页面大小eq ' 100 ' } '已选择/c :如果是100/option/select条/div class=' col-MD-9分页ul class=' pagining ' lia href=' # ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow '共${page.totlePages}页,${page.totleElements}条/a/Li c : if test=' $ { page。Previous has==false } ' Li class=' disabled ' a href=' # ' rel='外部无跟随' rel='外部无跟随' rel='外部无跟随' rel='外部无跟随' rel='外部无跟随'首页/a/Li Li class=' disabled ' a href=' # rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”上一页/a/Li/c : if c : if test=' $ { page。 是否具有previous==true } ' lia href='?页码=1页面大小=$ { page。PageSiZe } $ {搜索参数} ' rel='外部无跟随'首页/a/li lia href='?页码=$ { page。prepage }页面大小=$ { page。页面大小} $ {搜索参数} ' rel='外部无跟随'上一页/a/Li/c : if c : foreach var=' I ' begin=' $ { page。begin } ' end=' $ { page。end } ' c : test=' $ { I==page。page num } ' Li class=' active ' a href='?页码=$ { I }页面大小=$ { page。PageSiZe } $ {搜索参数} ' rel='外部不跟随' rel='外部不跟随' $ { I }/a/Li/c :当c :否则利亚?页码=$ { I }页面大小=$ { page。页面大小} $ {搜索参数} ' rel='外部不跟随' rel='外部不跟随' $ { I }/a/Li/c :否则/c :如果test=' $ { page }选择/c : foreach c :有next==true } lia href='吗?页码=$ { page。下一页}页面大小=$ { page。页面大小} $ {搜索参数} ' rel='外部无跟随'下一页/a/li lia href='?页码=$ { page。TotlePages } PageSiZe=$ { page。页面大小} $ {搜索参数} ' rel='外部无跟随'末页/a/Li/c : if c : if test=' $ { page。hasnext==false } ' Li类=' disabled ' a href=' # ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow ' rel=' external nofollow '下一页/a/Li Li class=' disabled ' a href=' # rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”rel=“外部无跟随”末页/a/li /c:if /ul /div/div! -分页信息结束-Page.java(分页信息类)

公共类页实现可序列化{私有静态最终长系列版本id=1L;public Page(int pageSize,int PageNum){ if(PageSize 0){ this。页面大小=页面大小;} if(PageNum 0){ this。PageNum=PageNum} } /** * 初始化各个值*/public void initValue(){ //计算总共有多少页totle page=(int)数学。天花板(总元素* 1.0/页面大小);if(TotlePages==0){ TotlePages=1;} //页码矫正if(页码=0){页码=1;} if(PageNum TotlePages){ PageNum=TotlePages;} //是否有上一页和首页if(页码1){ HasPrevious=true;prePage=页码-1;} //是否有下一页和尾页if(TotlePages PageNum){ HasNeXt=true;下一页=页码1;} //分页页码开始数值begin=Math.max(1,页码-分页大小/2);//分页页码结束数值end=数学。min(开始(分页大小-1),总页数);} /** * 分页下标最多显示多少页*/private int Pagination SiZe=10;/** * 页码开始*/private int begin=1;/** * 页码结束*/private int end=1;/** * 每页显示多少条*/private int page Size=15;/** * 当前页码*/private int页码=1;/** * 是否有下一页*/private boolean hasNext=false;/** * 是否有上一页*/private boolean有previous=false/** * 下一页的页码*/private int下一页;/** * 上一页的页码*/private int PrePage;/** * 总页数*/private int TotlePages=1;/** * 总条数*/private int to leelements=0;public static int MaxNum=999999 public int get paging size(){ return paging size;} public void setaginationsize(int paging size){ this。分页大小=分页大小;} public int GetBegin(){ return begin;} public void setBegin(int begin){ this。开始=开始;} public int GetEnd(){ return end;} public void setEnd(int end){ this。end=end} public int get page size(){ return page size;} public void SetPageSize(int PageSize){ this。页面大小=页面大小;} public int get page num(){ return page num;} public void setagenum(int page num){ this。页码=页码;} public boolean IshasNext(){ return HasNext;} public void setHasNext(boolean有next){ this。has next=has next} public boolean is ashspresevious(){ return HasPrevious;} public void setHasPrevious(布尔值hasPrevious){ this。hasPrevious=hasPrevious} public int getnext page(){返回下一页;} public void setnext page(int next page){ this。下一页=下一页;} public int getPrePage(){ return prePage;} public void setrepage(int PrePage){ this。PrePage=PrePage} public int getotlepages(){返回到tlepages} public void setotlepages(int Totlepages){ this。Totlepages=Totlepages} public int getotlelements(){ return to leelements;} public void setTotleElements(int Totleelements){ this。Totleelements=Totleelements//知道总条数之后,初始化一下其它值init值();} public static void main(String[]args){ system。出去。数学。min(1,2));} /** * 从第几条开始查询* @ return */public int getStartNum(){ return(page num-1)*页面大小1;} /** * 到第几条结束* @ return */public int getEndNum(){ return page num *页面大小;}}PageUtil.java(分页辅助类)

公共类PageUtil实现可序列化{私有静态最终长系列版本id=1L;/** * 获取目标页码* @ return */public static int getTargetPage(servlet请求){ int page num=0;字符串页面numstr=请求。GetParameter('页码');if(stringutils。is not blank(page numstr)){ try { page num=integer。(第numstr页)的值;}catch(异常e){页码=0;} }返回pageNum} /** *获取每页条数* @ return */public static int get page size(servlet请求请求){ int page size=0;string PageSizeStr=请求。GetParameter(' page size ');if(string utils。is not blank(page sizestr)){ try { page size=integer。(page sizestr)的值;}catch(异常e){页面大小=0;} }返回页面大小;} /** * 将地图中的查询条件,加上前缀,以拼接* @param映射* @param前缀每个参数的前缀* @ return */public static String encodepatameterstringwith前缀(MapString,Object map,String prefix){ if(null==map | | map。isempty()){ return " ";} StringBuffer sb=new StringBuffer();迭代器EntryString,Object entries=map.entrySet().迭代器();while(条目。hasnext()){ if(stringutils。(某人)不是空的。tostring()){ sb。追加(');}地图条目,对象条目=条目。next();某人追加(前缀);某人(somebody的简写)追加(条目。GetKey());某人(somebody的简写)追加('=');某人(somebody的简写)追加(条目。GetVaLue());}返回某人(somebody的简写)ToString();}}jsp页面中查询条件参数编写示例如下:

!-查询条件-div class=' col-MD-10 search ' form class=' form-inline ' action=' $ { CTX }/vasadmin/user/money/list ' method=' get ' div class=' form-group ' input type=' text ' class=' form-control input-sm ' name=' search _ userId ' value=' $ { param。search _ userId }“占位符=”用户ID ' onkey up=' this。值=这个。价值。在粘贴=' this '后替换(/\ D/g ' ')。值=这个。价值。替换(/\ D/g ' ')'/div class=' form-group '输入类型=' text ' class=' form-control input-sm ' name=' search _ minMoney ' value=' $ { param。' search _ minMoney } '占位符='最小余额onkeyup='这个。值=这个。价值。在粘贴=' this '后替换(/\ D/g ' ')。值=这个。价值。替换(/\ D/g ' ')'/div class=' form-group '输入类型=' text ' class=' form-control input-sm '名称='search_maxMoney '值='${param.search_maxMoney } '占位符='最大余额onkeyup='这个。值=这个。价值。在粘贴=' this '后替换(/\ D/g ' ')。值=这个。价值。替换(/\ D/g ' ')'/div class=' form-group '按钮类型=' submit ' class=' BTN BTN-初级BTN-sm ' span=' glyphicon glyphicon-search '/span搜索/按钮/div/表单/div!- /查询条件-源码下载地址:分页源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:JSP实现带查询条件的通用分页组件是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐