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

yizhihongxing

下面是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日

相关文章

  • eclipse+jdk安装以及会遇到的问题及解决方法

    Eclipse+jdk安装指南 1. 下载并安装JDK 首先需要在官网上下载JDK安装包, 下载网址为:Oracle官网。根据系统的位数进行选择下载,下载完成之后,打开安装包,按照提示进行安装,安装成功后需配置环境变量。 操作步骤如下: 在系统变量中新建JAVA_HOME,指向JDK的安装路径,例如:JAVA_HOME=C:\Program Files\Ja…

    Java 2023年5月24日
    00
  • 14个编写Spring MVC控制器的实用小技巧(吐血整理)

    下面是对“14个编写Spring MVC控制器的实用小技巧(吐血整理)”的完整攻略: 1. 引入必要的依赖 在开始编写Spring MVC控制器之前,我们需要在项目中引入Spring MVC相关的依赖。通常情况下,我们需要在pom.xml文件中引入以下依赖: <dependencies> <dependency> <groupI…

    Java 2023年5月16日
    00
  • 教你开发脚手架集成Spring Boot Actuator监控的详细过程

    下面我将为您详细讲解“教你开发脚手架集成Spring Boot Actuator监控的详细过程”的完整攻略。 前言 在进行Spring Boot应用开发过程中,我们通常使用Spring Boot提供的Actuator来监控应用程序运行状况,但是每次开发都要重复搭建这个环境是非常浪费时间的,本文将教大家如何将Actuator融入开发的脚手架中,降低开发成本。 …

    Java 2023年6月3日
    00
  • 微信小程序实现书架小功能

    下面我将为你详细讲解如何在微信小程序中实现书架小功能。 1. 准备工作 在开始实现之前,你需要安装并配置好微信小程序开发工具,同时了解一些基本的微信小程序开发知识。如果你还没有完成这些准备工作,可参考官方文档进行学习。 2. 创建页面 首先,需要在小程序中创建一个页面来展示书架。在微信小程序开发者工具中,点击新建页面,命名为bookshelf。同时,在根目录…

    Java 2023年5月23日
    00
  • 详解Java如何进行Base64的编码(Encode)与解码(Decode)

    当我们需要在网络上传输二进制数据时,常常需要将数据进行Base64编码。Java中提供了基础库,实现Base64编码非常方便。本文将详细讲解Java如何进行Base64的编码和解码。 Java Base64编码 在Java中,Base64编码可以使用Java标准库Java.util.Base64完成。具体步骤如下: 将待编码的数据转换为字节数组; 创建Bas…

    Java 2023年5月20日
    00
  • Java Spring的两种事务你知道吗

    让我们来详细讲解一下“Java Spring的两种事务”。 什么是事务? 在计算机领域,事务是一组数据库操作,它们要么全部成功执行,要么全部失败回滚,不会出现部分操作成功、部分操作失败的情况。在Java编程中,我们可以使用Java Spring框架来管理事务。 Spring事务的两种类型 在Java Spring框架中,Spring事务主要包含两种类型:基于…

    Java 2023年6月2日
    00
  • Spring MVC的参数绑定和返回值问题

    Spring MVC的参数绑定和返回值问题 在Spring MVC框架中,控制器的方法是用来处理请求的,而参数绑定和返回值则是掌握Spring MVC的关键所在。在这篇文章中,我们将详细讨论Spring MVC的参数绑定和返回值问题。 参数绑定 Spring MVC框架中的参数绑定是指将HTTP请求中的参数自动地绑定到控制器方法的参数中。具体而言,就是将HT…

    Java 2023年6月15日
    00
  • Spring Boot应用开发初探与实例讲解

    Spring Boot应用开发初探与实例讲解 什么是Spring Boot? Spring Boot是由Spring官方推出的一款快速构建spring应用程序的框架。它简化了Spring应用程序的开发和部署过程,提供了许多默认配置和开箱即用的组件,使得开发者能够更加专注于业务逻辑的编写。 如何开始Spring Boot应用开发? 步骤一:环境准备 首先,我们…

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