jquery pagination分页插件使用详解(后台struts2)

下面是jquery pagination分页插件使用详解(后台struts2)的完整攻略:

一、概述

jquery pagination是一款常用于前端数据分页的jquery插件,支持使用ajax方式加载数据,提供众多的配置项以适应不同的需求。本文将详细讲解如何在后台struts2项目中使用jquery pagination实现数据分页。

二、环境准备

使用jquery pagination需要先引入jquery及其依赖文件。在struts2项目中,我们可以通过在head.jsp文件中添加以下代码实现:

<script type="text/javascript" src="${base}/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="${base}/js/jquery.pagination.js"></script>

其中,base为struts2项目中context path的简称,可以通过以下方式获取:

<c:set var="base" value="${pageContext.request.contextPath}"></c:set>

三、后台代码实现

在struts2中,我们可以通过Action类来实现数据分页的后台逻辑。以下是一个简单的Action示例:

package com.example.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class PaginationAction extends ActionSupport {

    private int pageNumber;
    private int pageSize;
    private int total;
    private List<String> dataList;

    public String execute() {
        dataList = new ArrayList<String>();
        for (int i = (pageNumber - 1) * pageSize + 1; i <= pageNumber * pageSize; i++) {
            dataList.add("data" + i);
        }
        total = 100;
        return SUCCESS;
    }

    // getter和setter方法省略
}

在上面的示例中,我们通过传入pageNumberpageSize参数来获取指定页数和每页显示的数据量,然后通过计算得到对应的数据列表,最后将总数据量和数据列表返回给前端。

四、前端代码实现

在前端页面中,我们需要通过调用jquery pagination的相关方法来实现分页效果。以下是一个简单的示例:

<table>
    <thead>
        <tr>
            <th>Name</th>
        </tr>
    </thead>
    <tbody id="dataBody"></tbody>
</table>
<div id="pagination"></div>
<script type="text/javascript">
    $(function() {
        $('#pagination').pagination({
            pageSize: 10,
            total: ${total},
            pageNumber: ${pageNumber},
            onPageClick: function(pageNumber, event) {
                $.ajax({
                    url: '<s:url action="pagination"/>',
                    data: {
                        pageNumber: pageNumber,
                        pageSize: 10
                    },
                    success: function(data) {
                        $('#dataBody').html(data);
                    }
                });
            }
        });
    });
</script>

在上面的示例中,我们首先创建一个含有一个tbody的表格用于展示数据,并创建一个id为pagination的div用于生成分页条。然后,在jquery的ready事件中注册pagination插件,并设置相关参数,其中:

  • pageSize指定每页显示的数据量;
  • total指定总数据量;
  • pageNumber指定当前页数;
  • onPageClick指定翻页时的回调函数,用于发起ajax请求获取当前页的数据并更新表格。

最后,我们在ajax请求响应成功后更新表格中的数据,并将其展示在页面上。

五、完整示例

以下是一个完整的示例项目代码:

1. JSP页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html>
<head>
    <title>Pagination Example</title>
    <script type="text/javascript" src="${base}/js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="${base}/js/jquery.pagination.js"></script>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>Name</th>
            </tr>
        </thead>
        <tbody id="dataBody"></tbody>
    </table>
    <div id="pagination"></div>
    <script type="text/javascript">
        $(function() {
            $('#pagination').pagination({
                pageSize: 10,
                total: ${total},
                pageNumber: ${pageNumber},
                onPageClick: function(pageNumber, event) {
                    $.ajax({
                        url: '<s:url action="pagination"/>',
                        data: {
                            pageNumber: pageNumber,
                            pageSize: 10
                        },
                        success: function(data) {
                            $('#dataBody').html(data);
                        }
                    });
                }
            });
        });
    </script>
</body>
</html>

2. Action类

package com.example.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class PaginationAction extends ActionSupport {

    private int pageNumber;
    private int pageSize;
    private int total;
    private List<String> dataList;

    public String execute() {
        dataList = new ArrayList<String>();
        for (int i = (pageNumber - 1) * pageSize + 1; i <= pageNumber * pageSize; i++) {
            dataList.add("data" + i);
        }
        total = 100;
        return SUCCESS;
    }

    public int getPageNumber() {
        return pageNumber;
    }

    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }

    public int getPageSize() {
        return pageSize;
    }

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

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public List<String> getDataList() {
        return dataList;
    }

    public void setDataList(List<String> dataList) {
        this.dataList = dataList;
    }
}

3. struts.xml文件

<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.devMode" value="false" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
    <constant name="struts.ui.theme" value="simple" />
    <constant name="struts.i18n.encoding" value="UTF-8" />
    <constant name="struts.action.excludePattern" value=".*[.]class" />

    <package name="default" namespace="/" extends="struts-default">
        <action name="pagination" class="com.example.action.PaginationAction">
            <result name="success">/pagination.jsp</result>
        </action>
    </package>
</struts>

通过以上示例,你应该已经有了一个深入理解jquery pagination分页插件的基础,可以根据自己的需求进行相关配置和修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery pagination分页插件使用详解(后台struts2) - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • spring boot开发遇到坑之spring-boot-starter-web配置文件使用教程

    在Spring Boot开发中,使用spring-boot-starter-web依赖可以快速构建Web应用程序。但是,有时候我们在配置文件中使用该依赖时会遇到一些坑。以下是spring-boot-starter-web配置文件使用教程的完整攻略: 添加spring-boot-starter-web依赖 在Maven或Gradle中添加spring-boot…

    Java 2023年5月15日
    00
  • SpringBoot +DynamicDataSource切换多数据源的全过程

    下面将为你介绍SpringBoot + DynamicDataSource切换多数据源的全过程。 1. 需求分析 在实际应用场景中,一个系统需要连接多个数据库的情况是十分常见的。SpringBoot + DynamicDataSource可以帮助我们方便地实现这一需求,通过对数据源进行动态切换,实现对多个数据库的访问。 2. 技术方案 SpringBoot是…

    Java 2023年5月20日
    00
  • Spring中使用腾讯云发送短信验证码的实现示例

    下面我将为您详细讲解在Spring中使用腾讯云发送短信验证码的实现示例,并提供两个示例给您参考。 腾讯云SMS SDK介绍 在Spring中使用腾讯云发送短信验证码,需要使用腾讯云的SMS SDK。腾讯云的SMS SDK是专为开发人员和企业用户量身打造的短信发送解决方案,它提供了多种方式发送短信,包含了API接口、SDK、控制台等多种方式,并且可以满足不同场…

    Java 2023年5月20日
    00
  • Java基础夯实之线程问题全面解析

    Java基础夯实之线程问题全面解析 什么是线程? 线程是计算机在执行程序时,处理器上的一个执行单元,每个线程之间都是互相独立的执行流。线程可以同时运行在同一个进程中的多个线程之间共享内存和其它资源,这样可以提高程序的并发性和运行效率。 为什么要使用线程? 使用线程可以提高程序的并发性和运行效率,同时通过将耗时的计算和IO操作放在单独的线程中可以保证主线程的流…

    Java 2023年5月18日
    00
  • 鼠标焦点离开文本框时验证的js代码

    当用户在网页中填写表单时,我们常常需要验证用户输入的数据是否合法。而当用户在输入框输入完内容后,离开这个输入框,我们需要验证这个输入框中的内容是否符合我们的要求,这时候我们就需要使用JavaScript代码来验证用户的输入。以下是实现鼠标焦点离开文本框时验证的js代码的完整攻略。 1. 绑定事件 我们需要先为输入框绑定一个事件,当输入框失去焦点时触发这个事件…

    Java 2023年6月15日
    00
  • 从SpringMVC迁移到Springboot的方法步骤

    将SpringMVC应用程序迁移到Spring Boot应用程序可以提高应用程序的可维护性和可扩展性。本文将详细讲解如何从SpringMVC迁移到Spring Boot,包括如何配置Spring Boot、如何迁移SpringMVC配置、如何迁移SpringMVC控制器等。 配置Spring Boot 在Spring Boot应用程序中,可以使用@Sprin…

    Java 2023年5月15日
    00
  • jsp struts1 标签实例详解第1/2页

    首先,让我们来解释一下本文的标题“jsp struts1 标签实例详解第1/2页”。这个标题包含以下几个关键词: JSP:Java Server Pages的缩写,是一种用于创建动态网页的技术。 Struts1:Struts是一个MVC框架,而Struts1是Struts框架的第一个版本。 标签:在JSP页面中,可以使用标签来表示动态内容或控制页面的呈现方式…

    Java 2023年5月20日
    00
  • maven打包成第三方jar包且把pom依赖包打入进来的方法

    下面是详细讲解“maven打包成第三方jar包且把pom依赖包打入进来的方法”的完整攻略。 1. maven打包成第三方jar包的基本操作 在maven项目的根目录下执行以下命令: mvn clean package 执行上述命令即可将项目打包成jar包,同时在target目录下生成一个 xxx.jar 文件,这就是我们要的第三方jar包。 2. 把pom依…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部