栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

j2ee:通用分页下

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

j2ee:通用分页下

目录

一、改造pagebean

二、分页查询

一、改造pagebean

目标需求:
    需要新增变量保存上一次查询条件
    需要新增变量保存上一次请求地址
    需要添加方法:获取最大页的页码
    需要添加方法:获取下一页的页码
    需要添加方法:获取上一页的页码
    需要新增方法:初始化pagebean

pagebean的代码:```

package com.zsx.util;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;


public class PageBean {

    private int page = 1;// 页码

    private int rows = 10;// 页大小

    private int total = 0;// 总记录数
    //需要新增变量保存上一次请求地址
    private String url;
    
    private boolean pagination = true;// 是否分页
    //需要新增变量保存上一次查询条件
    private Map parameterMap = new HashMap();
    //需要添加方法:获取最大页码
    public int maxPage() {
        return this.total % this.rows==0 ? this.total / this.rows : this.total / this.rows+1;
    }
    //需要添加方法:获取上一页页码
    public int previousPage() {
        return this.page >1 ? this.page -1 : this.page;
    }
    //需要添加方法:获取下一页页码
    public int nextPage() {
        return this.page < this.maxPage()?this.page+1:this.page;
    }
    
    //需要添加方法:初始化pagebean
    public void setRequest(HttpServletRequest req) {
        this.setPage(req.getParameter("page"));
        this.setRows(req.getParameter("rows"));
        this.setPagination(req.getParameter("pagination"));
        this.setUrl(req.getRequestURL().toString());
        this.setParameterMap(req.getParameterMap());
    }
    
    
    
    private void setPagination(String pagination) {
        if(StringUtils.isNotBlank(pagination)) {
            this.setPagination((!"false".equals(pagination)));
        }
    }
    private void setRows(String rows) {
        if(StringUtils.isNotBlank(rows)) {
            this.setPage(Integer.valueOf(rows));
        }
    }
    public void setPage(String page) {
        if(StringUtils.isNotBlank(page))
            this.setPage(Integer.valueOf(page));
    }
    
    
    
    
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public Map getParameterMap() {
        return parameterMap;
    }
    public void setParameterMap(Map parameterMap) {
        this.parameterMap = parameterMap;
    }
    public PageBean() {
        super();
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        this.rows = rows;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public void setTotal(String total) {
        this.total = Integer.parseInt(total);
    }

    public boolean isPagination() {
        return pagination;
    }

    public void setPagination(boolean pagination) {
        this.pagination = pagination;
    }

    
    public int getStartIndex() {
        return (this.page - 1) * this.rows;
    }
    @Override
    public String toString() {
        return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", url=" + url + ", pagination="
                + pagination + ", parameterMap=" + parameterMap + "]";
    }
}

```

再建一个bookservlet:```

package com.zsx.servlet;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zsx.dao.BookDao;
import com.zsx.entity.Book;
import com.zsx.util.EncodingFiter;
import com.zsx.util.PageBean;
@WebServlet("/book.action")
public class BookServlet extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        
        PageBean pagebean=new PageBean();
        pagebean.setRequest(req);
        BookDao bookDao=new BookDao();
        Book book=new Book();
        book.setBname(req.getParameter("bname"));
        try {
            List books = bookDao.list2(book, pagebean);
            req.setAttribute("books", books);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        req.setAttribute("pagebean", pagebean);
        req.getRequestDispatcher("/booklist.jsp").forward(req, resp);
    }
    
}

```

界面bookList.jsp:```

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="z" uri="http://jsp.zsx.com" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>






书籍列表



    
                                            
                                                                                                                                                                                                                             
书籍ID书籍名价格
${b.bid }${b.bname }${b.price }
    


 二、分页查询

以一个书籍的表为例

建一个pageTag类:

​    ```

package com.zsx.tag;

import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;

import com.sun.org.apache.xml.internal.serializer.ToHTMLSAXHandler;
import com.zsx.util.PageBean;

public class PageTag extends BodyTagSupport{
    private PageBean  pageBean;
    
    public PageBean getPageBean() {
        return pageBean;
    }

    public void setPageBean(PageBean pageBean) {
        this.pageBean = pageBean;
    }

    @Override
    public int doStartTag() throws JspException {
        JspWriter out = pageContext.getOut();
        try {
            out.print(toHTML());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

    private String toHTML() {
        StringBuffer sb = new StringBuffer();
        //隐藏的from表单
        sb.append(" 
");         sb.append(" ");         Map parameterMap = pageBean.getParameterMap();         if(parameterMap != null && parameterMap.size()>0) {             Set> entrySet = parameterMap.entrySet();             for (Entry entry : entrySet) {                 String key = entry.getKey();                 String[] values = entry.getValue();                 if(!"page".equals(key)) {                     for (String value : values) {                         sb.append(" ");                     }                 }             }         }         sb.append(" ");         //分页条         sb.append("
    ");         sb.append("
  • 首页
  •     ");         sb.append("
  • <
  • ");         sb.append("
  • "+pageBean.getPage()+"
  • ");         sb.append("
  • >
  • ");         sb.append("
  • 尾页
  • ");         sb.append("
  • 到第页
  • ");         sb.append("
  • 确定
  • ");         sb.append("
  • 共"+pageBean.getTotal()+"条
  • ");         sb.append("
");         //分页js代码         sb.append(" ");         return sb.toString();     }      }

```

写一个配置文件zsx.tld```




    
  JSTL 1.1 core library
  JSTL core
  1.1
  c
  http://jsp.zsx.com

  
    
        Provides core validation features for JSTL tags.
    
    
        org.apache.taglibs.standard.tlv.JstlCoreTLV
    
  

  
    page
    com.zsx.tag.PageTag
    JSP
    
        pageBean
        true
        true
    
  


```

注意:当发生页数改变时,很多参数不变,但是页数(page)是会改变的

在bookList.jsp中导入标签库

    

<%@taglib uri="http://cdl.com" prefix="z" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>


将数据展示到页面上去```

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="z" uri="http://jsp.zsx.com" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>







书籍列表



    
                                            
                                                                                                                                                                                                                                  
书籍ID书籍名价格
${b.bid }${b.bname }${b.price }
    


最后效果:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号