LayUI分页查询展示数据(SSH框架)

网页展示的效果图如下: 

1、Service方法


public interface IStudentService {
	    //查询学生列表
	public List stulist(int page,int limit);
	    //总行数
        public long procount();

}

2、Impl方法:

import com.ht.common.BaseDao;

//继承一个BaseDao类实现一个IStudentService类
public class StudentServiceImpl extends BaseDao implements IStudentService {

   //查询学生列表
   public List stulist(int page,int limit) {
		// TODO Auto-generated method stub
		String sql="select * from student";
		return findSQLMapPage( sql, page,limit);
   	  }

   //总行数
	public long procount() {
		// TODO Auto-generated method stub	
		return obejctCount("select count(*) from Student");
	}

}

3、BaseDao类

    //findSQLMapPage方法
	public List<?> findSQLMapPage(String sql, int currPage, int pageCount) {// SQL分页
		Session session = null;
		Transaction tran = null;
		List<?> list = null;
		try {
			session = getSessionFactory().openSession();
			tran = session.beginTransaction();
			SQLQuery sqlquery = session.createSQLQuery(sql);
			sqlquery.setFirstResult((currPage - 1) * pageCount);
			sqlquery.setMaxResults(pageCount);
			sqlquery.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
			list = sqlquery.list();
			tran.commit();
		} catch (HibernateException e) {
			if (tran != null) {
				tran.rollback();
			}
			e.printStackTrace();
		} finally {
			if (session != null) {
				session.close();
			}
		}
		return list;
	}



	    //总行数
		public Long obejctCount(String hql) {
			Session session = null;
			Transaction tran = null;
			Long i = 0L;
			try {
				// 获取session
				session = getSessionFactory().openSession();
				tran = session.beginTransaction();
				Query query = session.createQuery(hql);
				i = (Long) query.uniqueResult();
				tran.commit();
			} catch (HibernateException e) {
				if (tran != null) {
					tran.rollback();
				}
				e.printStackTrace();
			} finally {
				if (session != null) {
					session.close();
				}
			}
			return i;
		}
	

4、Struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<constant name="struts.devMode" value="true"></constant>

	<!-- json访问,另起一个包名,访问路径不能使用json,*为通配符 -->
	<package name="zp" extends="json-default">
		<action name="zpjson*" class="com.ht.action.ZPJsonAction" method="{1}">
			<result type="json">
				<param name="root">data</param>
			</result>
		</action>
	</package>
</struts>

 5、Action方法:

import com.alibaba.fastjson.JSONObject;
import java.util.List;

public class ZPJsonAction extends SpringBeans{
  
IStudentservice is=new StudentServiceImpl();

JSONObject data;
private int page;//当前页数
private int limit;//每页行数 

//查询student表里面的信息
public String studentlist(){

		//查出所有课程list 注:查询方法一定要用SQL分页 不能使用hql分页
		List stulist=is.stulist(page, limit);
	
	    data=new JSONObject(); // 使用JSONObject返回页面
	    //需要返回的数据
	    data.put("code", 0);//照着写
	    data.put("msg", "");//照着写
	    data.put("count", is.procount());//总条数 数据库查
	    data.put("data", stulist);//你查出来的list这里put到前台去

		return "success";	
	  }



        //给page,limit,data提供set和get方法
        public int getPage() {
			return page;
		}

		public void setPage(int page) {
			this.page = page;
		}
		public int getLimit() {
			return limit;
		}
     	public void setLimit(int limit) {
			this.limit = limit;
		}
    	public JSONObject getData() {
		    return data;
	    }
    	public void setData(JSONObject data) {
		    this.data = data;
	    }

}

6、jsp页面 

<link rel="stylesheet" href="../lib/layui/css/layui.css"  media="all">
<link rel="stylesheet" href="../../static/css/weadmin.css">
<script src="../js/jquery-3.3.1.min.js"></script>
<script src="../lib/layui/layui.js" charset="utf-8"></script>

<table class="layui-hide" id="test" lay-filter="test"></table>
  
<script type="text/html" id="barDemo">
  <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>


	<script>

    layui.use('table', function(){
  var load = layui.layer.load(0);// 加载时loading效果
  layui.layer.close(load); //加载效果
	
    var table = layui.table;

   table.render({
    elem: '#test'  //与table相对应
    ,url:'jsonzplist.action'  //访问action的路径
    ,title: '数据表'
    ,limits : [5,10,15,20]//定义分页参数
    ,cols: [[//相当于th
     //  {type: 'checkbox', fixed: 'left'}, //最前面的复选框
      {field:'SSTUID', width:'8%', title: '学生ID', sort: true} 
      ,{field:'SNAME', width:'8%', title: '学生名字'}//field:后台传过来的名称(大写)
      ,{field:'SSCHOOL', width:'10%', title: '毕业学校'}
      ,{field:'SQQ', width:'10%', title: 'QQ'}
      ,{field:'SPHONE', width:'10%', title: '电话'}
      ,{field:'SWEIXIN', width:'10%', title: '微信'}
      ,{field:'SADDR', width:'10%', title: '地址'}
      
      ,{field:'SSTATU', width:'10%', title: '学生状态',
    	  
    	  templet : function(data) {// 替换数据			
    	    if(data.SSTATU==0){
    	    	return "意向";
    	    }else if(data.SSTATU==1){
    	    	return "预定报名";  	
    	    }else if(data.SSTATU==2){
    	    	return "正式入学";
    	       }
			}
         }
  
      ,{field:'STEACHERNAME', width:'10%', title: '招生老师'}
      ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:'10%'}
    ]]
    ,page: true  //是否分页
   });
  });
 </script>

猜你喜欢

转载自blog.csdn.net/zhang1409399037/article/details/85237954