query分页共享,可传参
query分页,可带参数。
封装一个分页类:
public class NewPage<T> {
//需要获取参数有: 每页条数,当前页,总条数
private int pageSize;//每页条数
private int firstPage = 1;//首页
private int previousPage;//上一页
private int currentPage;//当前页
private int nextPage;//下一页
private int lastPage;//尾页
private int pageCount;//总页数
private int totalCount;//总条数
private List<T> list;//只用来存放当前页要现实的数据内容记录
//一键设置其他参数...
public void setOthers(){
//计算总页数 pageCount
this.pageCount = (this.totalCount-1)/this.pageSize+1;
//下一页
if((this.currentPage+1)<=this.pageCount){
this.nextPage = this.currentPage+1;
}else{
this.nextPage = this.currentPage;
}
//上一页
if(this.currentPage>1){
this.previousPage = this.currentPage-1;
}else{
this.previousPage = this.currentPage;
}
//设置尾页
this.lastPage = this.pageCount;
}
//快捷设置初始化参数,也可以用其他单个的设置,参数依次为:当前页,每页条数,总条数
public void setFast(int currentPage,int pageSize,int total){
this.currentPage = currentPage;
this.pageSize = pageSize;
this.totalCount = total;
setOthers();
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getPreviousPage() {
return previousPage;
}
public void setPreviousPage(int previousPage) {
this.previousPage = previousPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
在dao里:两个方法,一个是查询条目总数,一个是查询信息:
public long totalCount(String sql){
List<Long> list = getHibernateTemplate().find(sql)
return list.get(0);
}
public NewPage<HrResultEntering> findAll(String sql,String sql2,int currentPage,int pageSize){
int totalNum = (int)totalCount(sql);
NewPage<HrResultEntering> page = new NewPage<HrResultEntering>();
page.setFast(currentPage, pageSize, totalNum);
Session session = this.getSession();
Query query = session.createQuery(sql2);
query.setFirstResult((currentPage-1)*pageSize);
query.setMaxResults(pageSize);
page.setList((List<HrResultEntering>)query.list());
return page;
}
在service里:
public NewPage<HrPerformTemplate> findAll(int currentPage, int pageSize,Integer status) {
String sql = "select count(*) from HrPerformTemplate where status="+status;
String sql2 = "from HrPerformTemplate where status="+status;
NewPage<HrPerformTemplate> page = hptd.findAll(sql, sql2, currentPage, pageSize);
return page;
}
在sevlet中:
public ActionForward noAudit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//List<HrPerformTemplate> list = mrsi.selectHPT1(0);
//request.setAttribute("list",list);
int currentPage = 1;
String current = request.getParameter("current");
if(current!=null&&!current.equals("")){
currentPage = Integer.parseInt(current);
}
HttpSession session = request.getSession();
session.setAttribute("currentPage",currentPage);
int pageSize = 6;
//session.setAttribute("pageSize",pageSize);
NewPage<HrPerformTemplate> page_all = mrsi.findAll(currentPage, pageSize,0);
List<HrPerformTemplate> list = page_all.getList();
request.setAttribute("list",list);
request.setAttribute("page_all", page_all);
return mapping.findForward("mtCheckList");
}
jsp页面中:
<ul>
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=1">首页</a></li>
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.previousPage}">上一页</a></li>
<c:if test="${page_all.currentPage-2 >0}">
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.currentPage-2}">${page_all.currentPage-2}</a></li>
</c:if>
<c:if test="${page_all.currentPage-1 >0}">
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.currentPage-1}">${page_all.currentPage-1}</a></li>
</c:if>
<li style=" background-color:#FFF;">
<a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.currentPage}" style="color:#090">${page_all.currentPage}</a>
</li>
<c:if test="${page_all.currentPage+1 <=page_all.pageCount}">
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.currentPage+1}">${page_all.currentPage+1}</a></li>
</c:if>
<c:if test="${page_all.currentPage+2 <=page_all.pageCount}">
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.currentPage+2}">${page_all.currentPage+2}</a></li>
</c:if>
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.nextPage}">下一页</a></li>
<li><a href="<%=path %>/meritRating.do?method=selectResult¤t=${page_all.lastPage}">最后一页</a></li>
<li style=" border:0px; background-color:#FFF">${page_all.currentPage}/${page_all.pageCount}</li>
</ul>
核心的代码都在其中,根据个人需求不同,自己修改即可.http://utility.baidu.com/blogsearch/submit.php
转载于:https://blog.51cto.com/3795780/1229383
query分页共享,可传参相关推荐
- 同一路由带参刷新,以及params和query两种方式传参的异同
同一路由应该不叫跳转了吧,就先叫刷新好了. 需求及问题 今天做web课设有这样一个需求: 在导航栏中一项叫做教师队伍一级菜单下,有三个二级菜单,分别为教授.副教授.讲师.这三个二级菜单分别对应一个页面 ...
- TP5 自带分页类的传参
tp5的本身分页方法的注释/** * 分页查询 * @param int|array $listRows 每页数量 数组表示配置参数 * @param int|bool $simple 是否简洁模式或 ...
- vue 中的动态传参和query传参
Vue router 如何传参 params.query 是什么? params:/router1/:id,这里的 id 叫做 params.例如/router1/123, /router1/789 ...
- @query传参_vue-router中params传参和query传参的区别及处理方法
在 Vue 实例内部,你可以通过 $router 访问路由实例.因此你可以调用 this.$router.push 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 his ...
- react更改路由入参_react怎么路由传参?
react路由传参(4种方式) 1.通过params传参(刷新页面后参数不消失,参数会在地址栏显示) 路由页面: //注意要配置 /:id 路由跳转并传递参数:链接方式:XX //或: XXjs方式: ...
- vue中的路由跳转和传参
一:注意:在 Vue 实例中,你可以通过 $router 访问路由实例.因此你可以调用 this.$router.push("路由地址")来跳转到目标路由页面: 想要导航到不同的 ...
- 路由声明式传参和编程式传参
声明式传参(使用带href /或本质上是a标签的时候) 直接带路径里带携带参数 下例 在地址栏是可以看到参数的(querys传参) 在vue.tools插件里可以观察到 取出路径参数的方式 param ...
- 路由传参的几种方式 亲测有效!!!!
传参方式可划分为params 传参 和query传参,而params传参可以分为在url地址栏当中显示参数和不显示参数俩种方式 1.query 传参(显示参数)也可分为声明式和编程式 两种方式 声明式 ...
- vue路由跳转以及路由传参接收
路由跳转 1.声明式路由跳转 (不带参数) 通过router-link标签进行跳转,使用name或者path都可以,在dom结构中会被渲染成a标签 注意:router-link中链接如果是'/'开始就 ...
最新文章
- 如何去除 IDEA 中 xml 文件的屎黄色背景
- 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
- Django从理论到实战(part51)--User模型
- 【Navicat】查看1000行以后的内容
- 代数学笔记11: 分圆域,分圆多项式,求解17次方程
- 不止 Java,Oracle 向 JavaScript 开炮!
- 添加.MSPX文件(VISTA下)
- 关于Ceisum中的heading、pitch、roll的定义
- UWP 学习笔记 二
- CCF TALKs 报名 | 今天,技术如何推动社会进步
- 文件上传漏洞利用介绍
- 怎样判断一个诊断(风险预测)模型的好坏?
- android系统自带字体设置,安卓手机系统字体设置-系统字体设置(Big Font) 安卓版v2.37-PC6安卓网...
- 随笔---XXXIII
- go 安装gin(使用git clone)
- http-head头部信息详解
- 万魔手游豆 1MORE × omthing AirFree Buds
- 六大QQ病毒的特征以及清除方法
- SPSS重新编码之自动编码功能
- 打灰机遇到的问题之 CCAnimation::addSpriteFrameWithFileName()