DAO层
/** * 分页查询全部员工,获取总记录数 */ public int totalPage(String className); /** * 分页查看,查看首页 */ public List<Employee> selectByPage(String className,int pageNo,int pageSize);

  DaoImp里面

 private EmployeeDao employeeDao;

    public void setEmployeeDao(EmployeeDao employeeDao) {
        this.employeeDao = employeeDao;
    }

    /**
     * 员工列表分页查询,查询总页数
     * @param className
     * @return
     */
    @Override
    public int totalPage(String className) {
        String hql="select count(*) from "+className;
        Query query= this.getSession().createQuery(hql);
        int total=Integer.parseInt(query.list().get(0).toString());
        return total;
    }

    /**
     * 分页查询,查询首页
     * @param className
     * @param pageNo
     * @param pageSize
     * @return
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<Employee> selectByPage(String className, int pageNo, int pageSize) {
        Query query=this.getSession().createQuery("from "+className);
        query.setFirstResult((pageNo-1)*pageSize);//每页显示的第一条记录
        query.setMaxResults(pageSize);//每页显示的记录数
        return query.list();
    }

  BIz层

 /**
     * 分页查看,查看首页
     */
    @SuppressWarnings("rawtypes")
    public List<Employee> selectByPage(String className,int pageNo,int pageSize);

    /**
     * 查看下一页
     * @param line
     * @param className
     * @return
     */
    public int searchRecordsNextPage(int line,String className);

  BIzImpl层

    private EmployeeDao employeeDao;

    public void setEmployeeDao(EmployeeDao employeeDao) {
        this.employeeDao = employeeDao;
    }

 /**
     * 分页查询
     * @param className
     * @param pageNo
     * @param pageSize
     * @return
     */
    @SuppressWarnings("rawtypes")
    @Override
    public List<Employee> selectByPage(String className, int pageNo, int pageSize) {
        List list= employeeDao.selectByPage(className,pageNo,pageSize);
        return list;
    }

    /**
     * 查看下一页
     * @param pageSize
     * @param className
     * @return
     */
    @Override
    public int searchRecordsNextPage(int pageSize, String className) {
        int total = employeeDao.totalPage(className);
        int pageNo = total / pageSize;
        if(total % pageSize>0){
            pageNo++;
        }
        return pageNo;
    }

  Action控制层

private Employee employee=new Employee();
@Override
public Employee getModel() {
    return employee;
}
private EmployeeBiz employeeBiz;

public void setEmployeeBiz(EmployeeBiz employeeBiz) {
    this.employeeBiz = employeeBiz;
}

/**
 * 分页查看员工列表
 */
@SuppressWarnings({"unchecked","rawtypes"})
public String selectFirstPage(){
    Map<String,Object> request= (Map<String, Object>) ActionContext.getContext().get("request");
    try{
        List list=employeeBiz.selectByPage("Employee",1,3);
        int totalPage=employeeBiz.searchRecordsNextPage(3,"Employee");
        request.put("list",list);
        request.put("totalPage",totalPage);
        request.put("currentPage",1);
    }catch(Exception e){
        e.printStackTrace();
    }
    return "selectFirstPage";
}
/**
 * 分页查找下一页
 */
@SuppressWarnings("rawtypes")
public String selectNextPage(){
    HttpServletRequest request= ServletActionContext.getRequest();
    int next=Integer.parseInt(request.getParameter("page"));
    try{
        List list=employeeBiz.selectByPage("Employee",next,3);
        int total=employeeBiz.searchRecordsNextPage(3,"Employee");
        request.setAttribute("list",list);
        request.setAttribute("currentPage",next);
        request.setAttribute("totalPage",total);
    }catch(Exception e){
        e.printStackTrace();
    }
    return "selectNextPage";
}

  前端div接收参数

<div>
			第${currentPage }页
			<input type="hidden" id="tpage" name="tpage"
				   value="${totalPage} "></input>
			<c:if test="${currentPage>1 }">
				<input type="button" value="首页" onclick="show(1)"></input>
				<input type="button" value="上一页" onclick="show(${currentPage-1})"></input>
			</c:if>
			<c:if test="${currentPage<totalPage }">
				<input type="button" value="下一页" onclick="show(${currentPage+1},${totalPage })"></input>
				<input type="button" value="尾页" onclick="show(${totalPage})"></input>
			</c:if>
			共${totalPage }页
		</div>
	</div>

  前端javascript里

 function show(next,total){
        if (next<=0) {
            alert("已经是首页了");
            return;
        }
        if (next>total) {
            alert("已经是尾页了");
            return;
        }
        document.forms[0].action="employeeselectNextPage?page="+next;
        document.forms[0].submit();
    }

  注意:1,在body里面要想实现分页要把body里面的form表单加上

<form id="myForm" name="myForm" method="post">

       2,如果使用的是mysql需要修改hibernate.cfg.xml里面的

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

  3,在struts.xml文件里面需要修改name里面的是第一页和下一页的方法

<!-- Employee action -->
		<action name="employee*" class="EmployeeAction" method="{1}">
			<result name="selectFirstPage">/employee.jsp</result>
			<result name="selectNextPage">/employee.jsp</result>
			<result name="add" type="redirectAction">employeeselectFirstPage</result>
			<result name="updateEmp">/employee_update.jsp</result>
			<result name="update" type="redirectAction">employeeselectFirstPage</result>
			<result name="delete" type="redirectAction">employeeselectFirstPage</result>
			<result name="error">/error.jsp</result>
		</action>

 

posted on 2019-02-15 09:24  康康kyx  阅读(138)  评论(0编辑  收藏  举报