教你实现SSM和Ajax后端分页

这篇具有很好参考价值的文章主要介绍了教你实现SSM和Ajax后端分页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,SSM中分页的使用

在java中分页一直是我不敢触及的一部分。本次博客全面剖析一下SSM框架如何实现分页。

二,效果展示

教你实现SSM和Ajax后端分页,ajax,前端,javascript,mvc,java
点击前一页后一页首页或者尾页或者是跳转都是静态的实现。

三,表单的实现

3.1,前端代码

listByajax.jsp

<body>
<div>总记录数:<span id="totalCount"></span>总页数:<span id="totalPageCount"></span></div>
    <table id="tableTbl" border="1">
        <thead>
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>年龄</td>
                <td>年级</td>
                <td>图片</td>
                <td>日期</td>
                <td colspan="2" style="text-align: center">操作</td>
                <button type="button" onclick="addByajaxBut()">添加</button>
            </tr>
        </thead>
        <tbody id="databody">
        <!-- 数据行动态生成 -->
        </tbody>
    </table>
<div>
    <button type="button" onclick="shouPage()">首页</button>
    <button type="button" onclick="upPage()">上一页</button>
    <input type="text" id="currPageNo" style="width: 15px;height: 24px" onblur="inpFenye()">
    <button type="button" onclick="nextPage()">下一页</button>
    <button type="button" onclick="weiPage()">页尾</button>
</div>
</body>
3.2,Ajax的实现
<script src="/js/jquery.js"></script>
<script>
    let currPageNo = 1;
    $(function (){
        currPageNo = 1;
        refreshTablo(currPageNo)
    })
    
    // 分页查询
    function refreshTablo(currPageNo){
        // console.log(0)
        $.ajax({
            url:"/byajaxController/getByajaxlimit",  // 后端查询数据接口的URL
            type:"post",
            data:{"currPageNo":currPageNo},
            dataType:"json",
            success:function (result){
                console.log(result)
                document.getElementById("totalCount").innerHTML=result.totalCount;
                document.getElementById("totalPageCount").innerHTML=result.totalPageCount;
                document.getElementById("currPageNo").value=result.currPageNo;
                // 清空表格数据
                $("#databody").empty();
                // 动态生成表格数据
                var Mybody = $("#databody")
                Mybody.html("");
                for (var i=0;i<result.byajaxs.length;i++){
                    var item = result.byajaxs[i];
                    console.log(item)
                    var tr = document.createElement("tr");
                    tr.innerHTML="<td>" + item.id + "</td>" +
                        "<td> " + item.byname + " </td>" +
                        "<td> " + item.byage + " </td>" +
                        "<td> " + item.bygrade + " </td>" +
                        "<td> " + item.bypicture + " </td>" +
                        "<td> " + item.bydate + " </td>" +
                        "<td><button type='button' class='updateBtn' οnclick='updatefu("+ item.id +")'>修改</button></td>" +
                        "<td><button type='button' class='deleteBtn' data-id=' " + item.id + " '>删除</button></td>"
                    Mybody.append(tr)
                }
            }
        })
    }

    //分页的一些方法
    function upPage(){
        if (currPageNo<=1){
            alert("已经是首页了")
        }else {
            currPageNo=currPageNo-1;
            refreshTablo(currPageNo);
        }
    }
    function nextPage(){
        if (currPageNo>=parseInt($("#totalPageCount").html())){
            alert("已经是尾页了")
        }else {
            currPageNo=currPageNo+1;
            refreshTablo(currPageNo);
        }
    }
    function shouPage(){
        currPageNo=1;
        refreshTablo(currPageNo);
    }
    function weiPage(){
        currPageNo=parseInt($("#totalPageCount").html());
        refreshTablo(currPageNo);
    }
    function inpFenye(){
        currPageNo=parseInt($("#currPageNo").val());
        if (currPageNo<1||currPageNo>parseInt($("#totalPageCount").html())){
            alert("没有此页码")
            currPageNo=1
            refreshTablo(currPageNo)
        }else {
            refreshTablo(currPageNo);
        }
    }

    $(document).ready(function (){
        refreshTablo();
    })
</script>
3.3,配置好page(用于显示条数,页数等)和Byajax(实体类)

until包下:page.java

package com.xinxi2.until;

import com.xinxi2.bean.Byajax;

import java.util.List;

public class Page {
    private int totalPageCount = 0;     //总页数 计算 根据每页展示记录数和记录总数计算出来的
    private int pageSize = 10;      //每页展示记录数。用户指定,通常有默认值
    private int totalCount;     // 记录总数。 数据库查询
    private int currPageNo = 1;     //当前页码 用户指定,默认显示第一页
    private List<Byajax> Byajaxs;    //每页微博集合 数据库查询

    public List<Byajax> getByajaxs() {
        return Byajaxs;
    }

    public void setByajaxs(List<Byajax> byajaxs) {
        Byajaxs = byajaxs;
    }


    public int getTotalPageCount() {
        // 总页数计算
        if (totalCount%pageSize==0){
            return totalCount/pageSize;
        }else {
            return totalCount/pageSize+1;
        }
    }


    public void setTotalPageCount(int totalPageCount) {
        this.totalPageCount = totalPageCount;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getCurrPageNo() {
        return currPageNo;
    }

    public void setCurrPageNo(int currPageNo) {
        this.currPageNo = currPageNo;
    }

}

Byajax.java

package com.xinxi2.bean;

import com.alibaba.fastjson.annotation.JSONField;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

public class Byajax {

    /**  */
    private Integer id ;
    /**  */
    private String byname ;
    /**  */
    private String byage ;
    /**  */
    private String bygrade ;
    /**  */
    private String bypicture ;
    /**  */
    @DateTimeFormat(pattern="yyyy-MM-dd") // String 转 Date 视图到控制层
    @JSONField(format = "yyyy-MM_dd")
    private Date bydate ;

    /**  */
    public Integer getId(){
        return this.id;
    }
    /**  */
    public void setId(Integer id){
        this.id=id;
    }
    /**  */
    public String getByname(){
        return this.byname;
    }
    /**  */
    public void setByname(String byname){
        this.byname=byname;
    }
    /**  */
    public String getByage(){
        return this.byage;
    }
    /**  */
    public void setByage(String byage){
        this.byage=byage;
    }
    /**  */
    public String getBygrade(){
        return this.bygrade;
    }
    /**  */
    public void setBygrade(String bygrade){
        this.bygrade=bygrade;
    }
    /**  */
    public String getBypicture(){
        return this.bypicture;
    }
    /**  */
    public void setBypicture(String bypicture){
        this.bypicture=bypicture;
    }
    /**  */
    public Date getBydate(){
        return this.bydate;
    }
    /**  */
    public void setBydate(Date bydate){
        this.bydate=bydate;
    }
}
3.4,Mapper.xml中查询数据

ByajaxMapper.java

package com.xinxi2.dao;

import com.xinxi2.bean.Byajax;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ByajaxMapper {

    int getByajax();

    List<Byajax> getByajaxlimit(@Param("currPageNo") int currPageNo,@Param("pageSize") int pageSize);

    List<Byajax> getlistByajax(Byajax byajax);
}

ByajaxMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xinxi2.dao.ByajaxMapper">

    <resultMap id="Byajaxinto" type="com.xinxi2.bean.Byajax">
        <id property="id" column="id"></id>
        <result property="byname" column="byname"></result>
        <result property="byage" column="byage"></result>
        <result property="bygrade" column="bygrade"></result>
        <result property="bypicture" column="bypicture"></result>
        <result property="bydate" column="bydate"></result>
    </resultMap>

    <select id="getByajax" resultType="java.lang.Integer" parameterType="com.xinxi2.bean.Byajax">
        select count(1) from byajax
    </select>

    <select id="getByajaxlimit" resultType="com.xinxi2.bean.Byajax" resultMap="Byajaxinto">
        select id,byname,byage,bygrade,bypicture,bydate FROM byajax
        limit #{currPageNo},#{pageSize}
    </select>
    
</mapper>
3.4,service层调用

ByajaxService.java

package com.xinxi2.service;

import com.xinxi2.bean.Byajax;
import java.util.List;

public interface ByajaxService {

    int getByajax();

    List<Byajax> getByajaxlimit(int currPageNo, int pageSize);
    
}

ByajaxServiceImpl.java

package com.xinxi2.service.impl;

import com.xinxi2.bean.Byajax;
import com.xinxi2.bean.MyAjax;
import com.xinxi2.dao.ByajaxMapper;
import com.xinxi2.dao.MyAjaxMapper;
import com.xinxi2.service.ByajaxService;
import com.xinxi2.service.MyAjaxService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("byajaxService")
public class ByajaxServiceImpl implements ByajaxService {

    @Autowired
    private ByajaxMapper byajaxMapper;


    @Override
    public int getByajax() {
        return byajaxMapper.getByajax();
    }

    @Override
    public List<Byajax> getByajaxlimit(int currPageNo, int pageSize) {
        int num = (currPageNo-1)*pageSize;
        return byajaxMapper.getByajaxlimit(num,pageSize);
    }
}
3.5,controller层调用并在jsp页面显示

ByajaxController.java

package com.xinxi2.controller;

import com.alibaba.fastjson.JSON;
import com.xinxi2.bean.Byajax;
import com.xinxi2.service.ByajaxService;
import com.xinxi2.until.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@Controller
@RequestMapping("/byajaxController")
public class ByajaxController {

    @Autowired
    private ByajaxService byajaxService;

    @RequestMapping("/getByajaxlimit")
    @ResponseBody
    public String getByajaxlimit(Byajax byajax, HttpServletRequest request){
        Page page = new Page();
        String currPageNoStr = request.getParameter("currPageNo");
        if (currPageNoStr==null || "".equals(currPageNoStr)){
            page.setCurrPageNo(1);
        }else {
            page.setCurrPageNo(Integer.parseInt(currPageNoStr));
        }
        String pageSizeStr = request.getParameter("pageSize");
        if (pageSizeStr==null || "".equals(pageSizeStr)){
            page.setPageSize(3);
        }else {
            page.setPageSize(Integer.parseInt(pageSizeStr));
        }
        page.setTotalCount(byajaxService.getByajax());
        page.setByajaxs(byajaxService.getByajaxlimit(page.getCurrPageNo(),page.getPageSize()));
        String result = JSON.toJSONString(page);
        return result;
    }
}
总结

最后,简单说点心得,在实现的过程中不要一味的寻求别人详细的模板或者解释,这个只是给你一个参考,最重要的是理解整个过程,然后可以通过自己的方式进行实现。

最后,有什么不足的地方多多指教!!!文章来源地址https://www.toymoban.com/news/detail-616339.html

到了这里,关于教你实现SSM和Ajax后端分页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSM 前端使用AJAX方式,fromdata文件格式上传二进制流文件

    今天在上课的时候,遇到了一个比较坑的问题,有个学生拿来了她的代码,让我给她看看为什么传值传不过来。 首先,前端是这样的: 后端是这样的: 然后上传文件的配置器是这样的: 她遇到的第一个问题是,后端这里接受值的时候,接受到的id和文件都是null,然后再后续

    2024年02月10日
    浏览(77)
  • php实现分页功能跳转和ajax方式实现

    实现效果  准备工作  创建数据表和导入测试数据 CREATE TABLE `users` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `username` varchar(30) DEFAULT NULL COMMENT \\\'账号\\\',   `email` varchar(30) DEFAULT NULL COMMENT \\\'密码\\\',   PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; INSERT INTO `users` VALUES (\\\'1\\\',

    2024年02月07日
    浏览(42)
  • 前端异步请求并解决跨域问题(Ajax+axios框架)、后端响应多个数据(JSON)

    目录 一、前后端同步异步请求 1.同步请求: 2.异步请求: 3.跨域问题(前端问题) 4.axios框架(封装后) 二、后端向前端响应多个数据-JSON 1.同步请求:         发送一个请求,回应请求,回应的内容会覆盖浏览器中的内容,这样会 打断 前端其他的正常操作。 2.异步请求:

    2024年02月07日
    浏览(71)
  • Django和jQuery,实现Ajax表格数据分页展示

    当存在重新请求接口才能返回数据的功能时,若页面的内容很长,每次点击一个功能,页面又回到了顶部,对于用户的体验感不太友好,我们希望当用户点击这类的功能时,能直接加载到数据,请求后端的操作不会呈现在前端,给用户一种无感知的状态。 若希望在不重新加载

    2024年02月08日
    浏览(40)
  • 【b站咸虾米】jQuery的ajax异步操作 web前端后端分离技术的原理

    课程地址:【jQuery的ajax异步操作 web前端后端分离技术的原理】 https://www.bilibili.com/video/BV1u5411M7ny/?share_source=copy_webvd_source=b1cb921b73fe3808550eaf2224d1c155 通过案例学习ajax异步操作。 介绍 php,前后端不分离的技术。 ajax,实现前后端分离技术。 在之前,要做动态网站,要懂php,ja

    2024年04月15日
    浏览(51)
  • 第9讲:使用ajax技术实现增删改查及分页显示功能(jQuery)

    本讲内容首先讲解jQuery对ajax的支持,分别讲解$.post,$.get,$.ajax等方法,这些方法的参数,使用方法及区别。最后对ajax的综合应用举例:在同一个页面实现新增,修改,删除学校资料,分页列表等功能,前端使用html静态页面,使用MySQL数据库,后台使用servlet技术实现。 基础环

    2024年02月11日
    浏览(39)
  • 探索 AJAX 技术:实现动态数据交互的前端利器

    简介: AJAX(Asynchronous JavaScript and XML)技术在 Web 前端开发中扮演着重要的角色,它通过异步通信和动态内容更新,为用户带来更好的交互体验。本篇笔记将详细探索 AJAX 技术,并通过生动的代码演示来展示其在实现动态数据交互方面的优势。 1. 异步通信 异步通信是一种在

    2024年02月14日
    浏览(45)
  • day50-springboot+ajax分页

    分页依赖: dependency     groupIdcom.github.pagehelper/groupId     artifactIdpagehelper-spring-boot-starter/artifactId     version1.0.0/version /dependency 配置: 前后端分离:前段页面中url需填写全路径,同时在controller层添加@CrossOrigin注解 拓展:Date类型需要转换,实体类中添加注解解决

    2024年02月14日
    浏览(43)
  • AJAX 前端开发利器:实现网页动态更新的核心技术

    AJAX是开发者的梦想,因为你可以: 在不重新加载页面的情况下更新网页 在页面加载后请求来自服务器的数据 在页面加载后接收来自服务器的数据 在后台向服务器发送数据 HTML页面 HTML页面包含一个 div 部分和一个 button div 部分用于显示来自服务器的信息 button 调用一个函数(

    2024年03月22日
    浏览(52)
  • [前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互

    在这篇文章中,我将介绍Ajax的基本概念、原理、优缺点、实现方法和应用场景,以及如何使用它来实现Web页面的异步交互。还将给一些简单而实用的例子,让你可以跟着我一步一步地编写自己的Ajax代码。 目录 一、什么是Ajax 二、如何使用Ajax (一)JavaScript中使用Ajax (二)

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包