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

java之通用分页2(前台)

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

java之通用分页2(前台)

目录       

一、pagebean的改变(增加变量)

二、servlet及dao方法

三、展示


一、pagebean的改变(增加变量)

1、url:保存上一次的地址;

2、p:保存上一次查询条件;

3、maxPage:获取最大页码;

4、previousPage:获取上一页的页码;

5、nextPage:获取下一页的页码;

6、setReq:初始化pagebean;

package com.cxy.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 boolean pagination = true;// 是否分页
	
	//新增变量
	private String url;//保存上一次的地址
	
	//保存上一次查询条件
	private Map p = 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 getP() {
		return p;
	}

	public void setP(Map p) {
		this.p = p;
	}
	
	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 + ", pagination=" + pagination
				+ ", url=" + url + ", p=" + p + "]";
	}
	

}

 PageTag.java

package com.cxy.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.cxy.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();
		
		//隐藏的form表单,作用保存上一次查询条件
		sb.append("
"); sb.append(""); Map parameterMap = pagebean.getP(); if(parameterMap != null && parameterMap.size() >0) { Set> entrySet = parameterMap.entrySet(); for (Entry entry : entrySet) { String key = entry.getKey();//name/likes/page/rows 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(); } }

二、servlet及dao方法

BookDao.java

package com.cxy.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.cxy.entity.Book;
import com.cxy.util.CallBack;
import com.cxy.util.DBAccess;
import com.cxy.util.PageBean;
import com.cxy.util.StringUtils;

public class BookDao extends BaseDao{
	
	public List list2(Book book,PageBean p) throws SQLException{
		String sql = "select * from tb_book where 1=1";
		String bname=book.getName();
		if(StringUtils.isNotBlank(bname)) {
			sql+=" and bname like '%"+bname+"%'";
		}
		int bid =book.getId();
		if(bid!=0) {
			sql +=" and bid="+bid;
		}
		
		return super.list(sql, p, rs ->{
			List list = new ArrayList<>();
			try {
				while(rs.next()) {
					list.add(new Book(rs.getInt("bid"), rs.getString("bname")));
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return list;
		});
	}
	

}

 BookServlet.java

package com.cxy.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.cxy.dao.BookDao;
import com.cxy.entity.Book;
import com.cxy.util.PageBean;
@WebServlet("/book/search")
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 pb = new PageBean();
		pb.setReq(req);
		BookDao b = new BookDao();
		Book book = new Book();
		String name = req.getParameter("name");
		if("null".equals(req.getParameter("name"))) {
			name ="" ;
		}
		book.setName(name);
		try {
			List books = b.list2(book, pb);
			req.setAttribute("books", books);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		System.out.println(pb);
		req.setAttribute("pb", pb);
		req.getRequestDispatcher("/booklist.jsp").forward(req, resp);
	}
	
}

三、展示

booklist.jsp

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






书籍列表




	

	
书籍ID 书籍名
${b.id } ${b.name }

界面展示:

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

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

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