在SSM框架下用laypage和ajax實(shí)現(xiàn)分頁和數(shù)據(jù)交互的方法
layui,一款前端框架,提供了豐富的組件和模板,layui提供的簡約后臺管理模板,對于后端學(xué)習(xí)者來說是個(gè)不錯(cuò)的福音。這里記錄在SSM框架下使用layui的分頁組件laypage。(官網(wǎng)開發(fā)文檔)
環(huán)境 Spring+SpringMVC+Mybatis , jquery-3.1.0.min.js , mysql-connector-java-5.1.34
前端代碼主要參考的是layui官網(wǎng)給定的代碼,加載layui.css和layui.js;除此之外,介于接下來用ajax與后臺進(jìn)行數(shù)據(jù)交互,因此這里也需要加載jquery的文件,我這里加載的是jquery-3.1.0-min.js。
主要代碼如下:
<div id="demo"></div> //定義分頁
<script type="text/javascript">
var url = "http://localhost:8080/HRM/";
$(document).ready(function(){
layui.use(['form','laypage', 'layer'], function(){
var laypage = layui.laypage,layer = layui.layer;
laypage({
cont: 'demo', //跟頁面前面div的id一樣
pages: ${endPage} , //總頁數(shù)
groups: 5 , //連續(xù)顯示分頁數(shù)
jump: function(obj, first){
//得到了當(dāng)前頁,用于向服務(wù)端請求對應(yīng)數(shù)據(jù)
var curr = obj.curr -1;
var self = this;
$.ajax({
//這里省略了ajax數(shù)據(jù)交互
});
});
});
</script>
后端采用SpirngMVC和Mybatis進(jìn)行數(shù)據(jù)處理。
創(chuàng)建Dao接口
List<Jobinfo> selectPageInfoByDel(@Param("start") int start); //獲取頁面數(shù)據(jù)
int countNumber(); //記錄總的條數(shù)
編寫Mapper.xml
這里主要用到了mysql的limit,limit從下標(biāo)0開始,limit0,8表示的是從下標(biāo)0開始,查詢8條數(shù)據(jù)。
<select id="selectPageInfoByDel" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select id,c_id,job,number,salary,more_salary,date from jobinfo where is_del = 1 order by id DESC limit #{start,jdbcType=INTEGER},8
</select>
<select id="countNumber" resultType="java.lang.Integer">
select count(*) from jobinfo where is_del =1
</select>
創(chuàng)建一個(gè)Page的pojo類
public class Page<T> implements Serializable {
private static final long serialVersionUID = 337297181251071639L;
private Integer page;//當(dāng)前頁
private Integer rows;//頁大小
private Integer totalRecord;// 總記錄數(shù)
private Integer firstPage; //首頁
private Integer endPage; //末頁
private List<T> list;//頁面數(shù)據(jù)列表
//這里省略的get和set的方法
}
創(chuàng)建Service接口
//查看分頁的信息 public List<Jobinfo> selectPageInfo(int page); //查看所有信息的總數(shù) int getCount();
創(chuàng)建Service的實(shí)現(xiàn)類impl
//這里省略了Dao的實(shí)例化,只顯示service接口的實(shí)現(xiàn)方法
public List<Jobinfo> selectPageInfo(int page) {
int rows = 8; //一頁顯示8條數(shù)據(jù)
int start = page*rows; //這里表示數(shù)據(jù)庫從第幾條數(shù)據(jù)開始查詢(limit從下標(biāo)0開始)
return jobDao.selectPageInfoByDel(start);
}
public int getCount() {
return jobDao.countNumber();
}
編寫Controller
@RequestMapping("page")
public @ResponseBody Page<Jobinfo> selectPageInfo(HttpServletRequest request, Model model,@RequestParam("start") int start){
List<Jobinfo> list= jobinfoService.selectPageInfo(start);
Page<Jobinfo> pageInfo = new Page<Jobinfo>();
int count = jobinfoService.getCount(); //獲取總數(shù)
int endPage = 0;
//8條數(shù)據(jù)為一頁
if(jobinfoService.getCount()%8==0){
endPage = jobinfoService.getCount()/8;
}else{
endPage = jobinfoService.getCount()/8 +1 ;
}
pageInfo.setPage(start+1);
pageInfo.setTotalRecord(count);
pageInfo.setList(list);
pageInfo.setRows(8);
pageInfo.setFirstPage(1);
pageInfo.setEndPage(endPage);
return pageInfo;
}
運(yùn)行結(jié)果

事實(shí)上,整體功能的實(shí)現(xiàn)在頁面與后臺用ajax傳遞數(shù)據(jù)那一塊花費(fèi)了一下時(shí)間,因?yàn)榈谝淮谓佑|到layui,也漸漸感受到了layui與傳統(tǒng)ajax數(shù)據(jù)傳遞的不同,layui對方法進(jìn)行了封裝,因此用ajax傳數(shù)據(jù)的時(shí)候也需依于框架進(jìn)行。
以上這篇在SSM框架下用laypage和ajax實(shí)現(xiàn)分頁和數(shù)據(jù)交互的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序點(diǎn)擊列表跳轉(zhuǎn)到對應(yīng)詳情頁過程解析
這篇文章主要介紹了微信小程序點(diǎn)擊列表跳轉(zhuǎn)到對應(yīng)詳情頁過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
微信小程序自定義toast實(shí)現(xiàn)方法詳解【附demo源碼下載】
這篇文章主要介紹了微信小程序自定義toast實(shí)現(xiàn)方法,簡單描述了微信小程序自帶toast使用方法,并結(jié)合實(shí)例形式分析了自定義toast的定義與使用方法,需要的朋友可以參考下2017-11-11
深入理解javascript學(xué)習(xí)筆記(一) 編寫高質(zhì)量代碼
編寫高質(zhì)量JavaScript的一些要素,例如避免全局變量,使用單變量聲明,在循環(huán)中預(yù)緩存length(長度),遵循代碼閱讀,以及更多2012-08-08
Javascript實(shí)現(xiàn)可旋轉(zhuǎn)的圓圈實(shí)例代碼
這篇文章主要介紹了Javascript實(shí)現(xiàn)可旋轉(zhuǎn)的圓圈實(shí)例代碼,可實(shí)現(xiàn)圓圈的旋轉(zhuǎn)與運(yùn)動(dòng)效果,涉及javascript動(dòng)態(tài)操作頁面元素屬性及進(jìn)行相應(yīng)數(shù)學(xué)運(yùn)算的技巧,需要的朋友可以參考下2015-08-08
JavaScript關(guān)于某元素點(diǎn)擊事件的監(jiān)聽和觸發(fā)
本文主要介紹了JavaScript關(guān)于某元素點(diǎn)擊事件的監(jiān)聽和觸發(fā),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

