博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通用分页二
阅读量:4568 次
发布时间:2019-06-08

本文共 11115 字,大约阅读时间需要 37 分钟。

jsp页面显示分页

 pagebean.java

public class PageBean {    private int page = 1;// 页码    private int rows = 10;// 页大小    private int total = 0;// 总记录数    private boolean pagination = true;// 是否分页    private Map
paMap=new HashMap<>(); private String url; public void setRequest(HttpServletRequest req) { //保存上一次请求所携带得参数 this.setPaMap(req.getParameterMap()); this.setUrl(req.getRequestURI().toString()); //在jsp页面来控制是否分页 this.setPagination(req.getParameter("pagination")); //在jsp页面控制一页展示多少条数据 this.setRows(req.getParameter("rows")); this.setPage(req.getParameter("page")); } public void setPage(String page) { this.page=StringUtils.isNotBlank(page)?Integer.valueOf(page):this.page; } public void setPagination(String pagination) { this.pagination=StringUtils.isNotBlank(pagination)?!"false".equals(pagination):this.pagination; } public void setRows(String rows) { this.rows=StringUtils.isNotBlank(rows)?Integer.valueOf(rows):this.rows; } public Map
getPaMap() { return paMap; } public void setPaMap(Map
paMap) { this.paMap = paMap; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } 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; } /** * 获得起始记录的下标 * * @return */ public int getStartIndex() { return (this.page - 1) * this.rows; } @Override public String toString() { return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination + "]"; } /** * 获取最大的页码数 * @return */ public int getMaxPage() { return this.total%this.rows==0 ? this.total/this.rows : this.total/this.rows+1; } /** * 获取下一页 * @return */ public int getNextPage() { return this.page < this.getMaxPage() ? this.page+1:this.page; } /** * 获取上一页 * @return */ public int getpreviousPage() { return this.page>1 ? this.page-1:this.page; }}

 

 bookServlet.java

package com.web;import java.io.IOException;import java.sql.SQLException;import java.util.List;import java.util.Map;import javax.jws.WebService;import javax.servlet.ServletException;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.entity.Book;import com.jt.dao.BookDao;import com.util.PageBean;@WebServlet("/bookServlet ")public class BookServlet extends HttpServlet {        private static final long serialVersionUID = 6304839939800249916L;    private BookDao bookDao=new BookDao();        @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        doPost(req, resp);    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        String bname=req.getParameter("bname");        Book book=new Book();        book.setBname(bname);        //        Map
parameterMap=req.getParameterMap();// StringBuffer url= req.getRequestURL(); PageBean pageBean=new PageBean(); try { pageBean.setRequest(req); List
list= this.bookDao.list(book, pageBean); req.setAttribute("bookList", list); req.setAttribute("pageBean",pageBean); req.getRequestDispatcher("/BookList.jsp").forward(req, resp); } catch (InstantiationException | IllegalAccessException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

 

 过滤器:EncodingFiter.java

package com.util;import java.io.IOException;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 中文乱码处理 *  */public class EncodingFiter implements Filter {	private String encoding = "UTF-8";// 默认字符集	public EncodingFiter() {		super();	}	public void destroy() {	}	public void doFilter(ServletRequest request, ServletResponse response,			FilterChain chain) throws IOException, ServletException {		HttpServletRequest req = (HttpServletRequest) request;		HttpServletResponse res = (HttpServletResponse) response;		// 中文处理必须放到 chain.doFilter(request, response)方法前面		res.setContentType("text/html;charset=" + this.encoding);		if (req.getMethod().equalsIgnoreCase("post")) {			req.setCharacterEncoding(this.encoding);		} else {			Map map = req.getParameterMap();// 保存所有参数名=参数值(数组)的Map集合			Set set = map.keySet();// 取出所有参数名			Iterator it = set.iterator();			while (it.hasNext()) {				String name = (String) it.next();				String[] values = (String[]) map.get(name);// 取出参数值[注:参数值为一个数组]				for (int i = 0; i < values.length; i++) {					values[i] = new String(values[i].getBytes("ISO-8859-1"),							this.encoding);				}			}		}		chain.doFilter(request, response);	}	public void init(FilterConfig filterConfig) throws ServletException {		String s = filterConfig.getInitParameter("encoding");// 读取web.xml文件中配置的字符集		if (null != s && !s.trim().equals("")) {			this.encoding = s.trim();		}	}}
 

  自定义标签类:PageTag.java

package com.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.util.PageBean;public class PageTag extends BodyTagSupport {    private static final long serialVersionUID = -553969530960334073L;    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) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return super.doStartTag();    }    private String toHTML() {        // TODO Auto-generated method stub        StringBuilder sb=new StringBuilder();        //拼接下一次发送请求所要提交得隐藏得form表单        sb.append("
"); sb.append("
"); Map
paMap = pageBean.getPaMap(); if(paMap!=null&&paMap.size()>0) { Set
> entrySet = paMap.entrySet(); for (Entry
entry : entrySet) { //上一次请求可能携带页码naempage得参数,但是改参数在前面以及单独赋值 //为什么要单独赋值?因为上一次请求时第一页得数据,下一次可能时第二页,以后这前后请求page对应得值不一样,需要单独赋值 if(!"page".equals(entry.getKey())) {//
//
//[1,2] for(String val:entry.getValue()) { sb.append("
"); } } } } sb.append(""); //拼接分页条 sb.append("
"); sb.append("每页"+pageBean.getRows()+"条,共"+pageBean.getTotal()+"条,第"+pageBean.getPage()+"页,共"+pageBean.getMaxPage()+"页  
首页  
上一页  
下一页  
尾页  
  
Go"); sb.append("
"); //拼接分页所需要得js代码 sb.append("
"); return sb.toString(); }}

 

 jsp页面:bookList.jsp

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

小说目录

书名:
编号 名称 价格
${b.bid } ${b.bname } ${b.price }

接下来就是运行结果:

 (在这里我们可以跳转,首页尾页下一页上一页)

 

 

再接下来就是通用分页带给我们的好处演示啦

新建一个servlet跟jsp页面

servlet

package com.web;import java.io.IOException;import java.sql.SQLException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.entity.Blog;import com.jt.dao.BlogDao;import com.util.PageBean;@WebServlet("/blogServlet")public class BlogServlet extends HttpServlet {    private BlogDao blogDao=new BlogDao();    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        doPost(req, resp);    }    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        Blog blog=new Blog();        blog.setBookname(req.getParameter("bookname"));        PageBean pageBean=new PageBean();        try {            List
list = this.blogDao.list(blog, pageBean); req.setAttribute("blogList",list); req.setAttribute("pageBean",pageBean); req.getRequestDispatcher("/BlogList.jsp").forward(req, resp); } catch (InstantiationException | IllegalAccessException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}

  jsp页面

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

小说目录

书名:
编号 名称
${b.id } ${b.bookname }

  

 演示到这里就结束啦!!!

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/BAYOUA/p/11070416.html

你可能感兴趣的文章
(八) 自动化测试的实例(以浏览器为例)
查看>>
js获取单选框和复选框的值并判断值存在后允许转跳
查看>>
任务一:零基础HTML编码
查看>>
C#类和结构以及堆和栈大烩菜(本来就迷,那就让暴风来的更猛烈吧!)
查看>>
Bayan 2012-2013 Elimination Round (ACM ICPC Rules, English statements) A. Old Peykan
查看>>
jmeter之jdbc请求
查看>>
C语言习题三
查看>>
94. Binary Tree Inorder Traversal
查看>>
MongoDB安装及多实例启动
查看>>
[css]我要用css画幅画(三)
查看>>
eletron打包
查看>>
numpy
查看>>
django | 连接mysql数据库
查看>>
labelme2coco问题:TypeError: Object of type 'int64' is not JSON serializable
查看>>
Python字符串操作
查看>>
连接池
查看>>
使用易语言COM对象取文件版本
查看>>
3、将uboot,kernel,rootfs下载到开发板上
查看>>
2.16.10.init进程详解1
查看>>
对redis深入理解
查看>>