01下载资源文件
在BootStrap前端框架中将以下三个JS和CSS资源文件引入到项目中
<!-- DataTables -->
<script src="/static/assets/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="/static/assets/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
<!-- DataTables -->
<link rel="stylesheet" href="/static/assets/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
02前端初始化启动dataTable插件
创建
<script>
$(function(){
$("#dataTable").dataTable({
"paging": true,
"info": true,
"lengthChange":false,
"ordering":false,
"processing":true,
"searching":false,
"serverSide":true,
"deferRender":true,
"ajax":{
"url":"/user/page"
},
"columns":[
{"data":"id"},
{"data":"username"},
{"data":"phone"},
{"data":"email"},
{"data":"updated"},
{
"data": function (row,type,val,meta) {
return '<a href="#" type="button" class="btn btn-default btn-sm"><i class="fa fa-search"></i>查看</a> '+
'<a href="#" type="button" class="btn btn-primary btn-sm"><i class="fa fa-edit"></i>编辑</a> '+
'<a href="#" type="button" class="btn btn-danger btn-sm"><i class="fa fa-trash-o"></i>删除</a> '
}
}
],
"language": {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
}
});
});
</script>
03后端相关代码
SpringMVC Controller层创建相应接口
@Controller
@RequestMapping(value = "user")
public class UserController {
@Autowired
private TbUserService tbUserService;
@ResponseBody
@RequestMapping(value="page",method = RequestMethod.GET)
public Map<String,Object> page(HttpServletRequest request){
Map<String,Object> result =new HashMap<>();
String strDraw =request.getParameter("draw");
String strStart =request.getParameter("start");
String strLength =request.getParameter("length");
int draw = strDraw == null ? 0 : Integer.parseInt(strDraw);
int start = strStart == null ? 0 : Integer.parseInt(strStart);
int length = strLength == null ? 10 : Integer.parseInt(strLength);
List<TbUser> tbUsers = tbUserService.page(start, length);
for(TbUser tbUser :tbUsers){
System.out.println(tbUser.getUsername());
}
int count =tbUserService.count();
result.put("draw", draw);
result.put("recordsTotal", count);
result.put("recordsFiltered", count);
result.put("data", tbUsers);
result.put("error", "");
return result;
}
服务层创建相应接口和实现类
public interface TbUserService {
List<TbUser> page(int start , int length);
}
@Service
public class TbUserServiceImpl implements TbUserService {
@Autowired
private TbUserDao tbUserDao;
@Override
public List<TbUser> page(int start, int length) {
Map<String,Object> params=new HashMap<>();
params.put("start",start);
params.put("length",length);
return tbUserDao.page(params);
}
Dao层创建相应接口和mybatis的mapper.xml的sql语句撰写
@Repository
public interface TbUserDao {
List<TbUser> page(Map<String,Object> params);
}
<!--分页查询-->
<select id="page" resultType="TbUser" parameterType="java.util.Map">
SELECT
<include refid="tbUserColumns" />
FROM
tb_user AS a LIMIT #{start}, #{length}
</select>
04前端相关代码
<table id="dataTable">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>手机号</th>
<th>邮箱号</th>
<th>更新时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>