网页展示的效果图如下:
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>