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&current=1">首页</a></li>

<li><a href="<%=path %>/meritRating.do?method=selectResult&current=${page_all.previousPage}">上一页</a></li>

<c:if test="${page_all.currentPage-2 >0}">

<li><a href="<%=path %>/meritRating.do?method=selectResult&current=${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&current=${page_all.currentPage-1}">${page_all.currentPage-1}</a></li>

</c:if>

<li style=" background-color:#FFF;">

<a href="<%=path %>/meritRating.do?method=selectResult&current=${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&current=${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&current=${page_all.currentPage+2}">${page_all.currentPage+2}</a></li>

</c:if>

<li><a href="<%=path %>/meritRating.do?method=selectResult&current=${page_all.nextPage}">下一页</a></li>

<li><a href="<%=path %>/meritRating.do?method=selectResult&current=${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分页共享,可传参相关推荐

  1. 同一路由带参刷新,以及params和query两种方式传参的异同

    同一路由应该不叫跳转了吧,就先叫刷新好了. 需求及问题 今天做web课设有这样一个需求: 在导航栏中一项叫做教师队伍一级菜单下,有三个二级菜单,分别为教授.副教授.讲师.这三个二级菜单分别对应一个页面 ...

  2. TP5 自带分页类的传参

    tp5的本身分页方法的注释/** * 分页查询 * @param int|array $listRows 每页数量 数组表示配置参数 * @param int|bool $simple 是否简洁模式或 ...

  3. vue 中的动态传参和query传参

    Vue router 如何传参 params.query 是什么? params:/router1/:id,这里的 id 叫做 params.例如/router1/123, /router1/789 ...

  4. @query传参_vue-router中params传参和query传参的区别及处理方法

    在 Vue 实例内部,你可以通过 $router 访问路由实例.因此你可以调用 this.$router.push 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 his ...

  5. react更改路由入参_react怎么路由传参?

    react路由传参(4种方式) 1.通过params传参(刷新页面后参数不消失,参数会在地址栏显示) 路由页面: //注意要配置 /:id 路由跳转并传递参数:链接方式:XX //或: XXjs方式: ...

  6. vue中的路由跳转和传参

    一:注意:在 Vue 实例中,你可以通过 $router 访问路由实例.因此你可以调用 this.$router.push("路由地址")来跳转到目标路由页面: 想要导航到不同的 ...

  7. 路由声明式传参和编程式传参

    声明式传参(使用带href /或本质上是a标签的时候) 直接带路径里带携带参数 下例 在地址栏是可以看到参数的(querys传参) 在vue.tools插件里可以观察到 取出路径参数的方式 param ...

  8. 路由传参的几种方式 亲测有效!!!!

    传参方式可划分为params 传参 和query传参,而params传参可以分为在url地址栏当中显示参数和不显示参数俩种方式 1.query 传参(显示参数)也可分为声明式和编程式 两种方式 声明式 ...

  9. vue路由跳转以及路由传参接收

    路由跳转 1.声明式路由跳转 (不带参数) 通过router-link标签进行跳转,使用name或者path都可以,在dom结构中会被渲染成a标签 注意:router-link中链接如果是'/'开始就 ...

最新文章

  1. 如何去除 IDEA 中 xml 文件的屎黄色背景
  2. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
  3. Django从理论到实战(part51)--User模型
  4. 【Navicat】查看1000行以后的内容
  5. 代数学笔记11: 分圆域,分圆多项式,求解17次方程
  6. 不止 Java,Oracle 向 JavaScript 开炮!
  7. 添加.MSPX文件(VISTA下)
  8. 关于Ceisum中的heading、pitch、roll的定义
  9. UWP 学习笔记 二
  10. CCF TALKs 报名 | 今天,技术如何推动社会进步
  11. 文件上传漏洞利用介绍
  12. 怎样判断一个诊断(风险预测)模型的好坏?
  13. android系统自带字体设置,安卓手机系统字体设置-系统字体设置(Big Font) 安卓版v2.37-PC6安卓网...
  14. 随笔---XXXIII
  15. go 安装gin(使用git clone)
  16. http-head头部信息详解
  17. 万魔手游豆 1MORE × omthing AirFree Buds
  18. 六大QQ病毒的特征以及清除方法
  19. SPSS重新编码之自动编码功能
  20. 打灰机遇到的问题之 CCAnimation::addSpriteFrameWithFileName()

热门文章

  1. FastStone Capture不止于完美截图体验
  2. 如何生成存储器配置文件?
  3. Vivado各个过程产生的文件与ISE的对比
  4. FPGA笔试题解析(一)
  5. pdf怎么压缩大小?
  6. 中消协:警惕以治病为噱头的保健品虚假宣传行为
  7. freemaker页面字符串特殊字符显示异常处理
  8. 缺陷的JIRA管理文档
  9. windows安装xampp时出现,unable to realloc xxxxxxxx bytes
  10. JQuery ajax请求一直返回Error(parsererror)