Spring MVC分页示例

Spring MVC分页示例

分页用于在不同部分显示大量记录。在这种情况下,我们将在一页中显示10、20或50条记录。对于其余记录,我们提供链接。

我们可以在Spring MVC中简单地创建分页示例。在此分页示例中,我们使用MySQL数据库来获取记录。

创建表或导入SQL文件

在这里,我们已经在"测试"数据库中创建了" emp"表。 emp表具有三个字段: ID,名称和薪水。创建表并手动插入记录,或导入我们的SQL文件。

Spring MVC分页示例

1、将依赖项添加到pom.xml文件。

pom.xml

示例

 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper -->
<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jasper</artifactId><version>9.0.12</version>
</dependency><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>  <groupId>javax.servlet</groupId>  <artifactId>servlet-api</artifactId>  <version>3.0-alpha-1</version>  
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version>
</dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version>
</dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.1.RELEASE</version>
</dependency>

2、创建bean类

在这里,bean类包含对应于数据库中存在的字段的变量(以及setter和getter方法)。

Emp.java

示例

package com.nhooo.beans;  public class Emp {  
private int id;  
private String name;  
private float salary;  public int getId() {  return id;  
}  
public void setId(int id) {  this.id = id;  
}  
public String getName() {  return name;  
}  
public void setName(String name) {  this.name = name;  
}  
public float getSalary() {  return salary;  
}  
public void setSalary(float salary) {  this.salary = salary;  
}  }

3、创建控制器类

在控制器类中, @PathVariable 批注将方法参数与临时URL绑定在一起。例如:

示例

@RequestMapping(value="/viewemp/{pageid}")

在此处,{}括号包含临时值。

EmpController.java

示例

package com.nhooo.controllers;   
import java.util.List;    
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;  
import org.springframework.web.bind.annotation.RequestMapping;    
import com.nhooo.beans.Emp;  
import com.nhooo.dao.EmpDao;  
@Controller  
public class EmpController {  @Autowired  EmpDao dao;  @RequestMapping(value="/viewemp/{pageid}")  public String edit(@PathVariable int pageid,Model m){  int total=5;  if(pageid==1){}  else{  pageid=(pageid-1)*total+1;  }  System.out.println(pageid);List<Emp> list=dao.getEmployeesByPage(pageid,total);  m.addAttribute("msg", list);return "viewemp";  }  
}

4、创建DAO类

让我们创建一个DAO类以访问数据库中所需的数据。

EmpDao.java

示例

package com.nhooo.dao;  import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.util.List;  
import org.springframework.jdbc.core.JdbcTemplate;  
import org.springframework.jdbc.core.RowMapper;  
import com.nhooo.beans.Emp;  public class EmpDao {  
JdbcTemplate template;  public void setTemplate(JdbcTemplate template) {  this.template = template;  
}  public List<Emp> getEmployeesByPage(int pageid,int total){  String sql="select * from emp limit "+(pageid-1)+","+total;  return template.query(sql,new RowMapper<Emp>(){  public Emp mapRow(ResultSet rs, int row) throws SQLException {  Emp e=new Emp();  e.setId(rs.getInt(1));  e.setName(rs.getString(2));  e.setSalary(rs.getfloat(3));  return e;  }  });  
}  
}

5、在web.xml文件中提供控制器的条目

web.xml

示例

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>SpringMVC</display-name><servlet>  <servlet-name>spring</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  <servlet-name>spring</servlet-name>  <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

6、在xml文件中定义Bean

spring-servlet.xml

示例

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.nhooo.controllers"></context:component-scan>  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
<property name="prefix" value="/WEB-INF/jsp/"></property>  
<property name="suffix" value=".jsp"></property>  
</bean>  <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>  
<property name="username" value=""></property>  
<property name="password" value=""></property>  
</bean>  <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">  
<property name="dataSource" ref="ds"></property>  
</bean>  <bean id="dao" class="com.nhooo.dao.EmpDao">  
<property name="template" ref="jt"></property>  
</bean>     
</beans>

7、创建请求的页面

index.jsp

示例

<!DOCTYPE html>
<html>
<body>
<a href="viewemp/1">View Employees</a> 
</body>
</html>

8、创建视图组件

viewemp.jsp

示例

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>    
<!DOCTYPE html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h1>Employees List</h1>  
<table border="2" width="70%" cellpadding="2">  
<tr><th>Id</th><th>Name</th><th>Salary</th></tr>  <c:forEach var="emp" items="${msg}">   <tr>  <td>${emp.id}</td>  <td>${emp.name}</td>  <td>${emp.salary}</td>  </tr>  </c:forEach>  </table>  <br/>  <a href="/SpringMVCPaginationExample/viewemp/1">1</a>   <a href="/SpringMVCPaginationExample/viewemp/2">2</a>   <a href="/SpringMVCPaginationExample/viewemp/3">3</a>  
</body>
</html>

输出:

Spring MVC分页示例


 

Spring MVC分页示例


 

Spring MVC分页示例


 

Spring MVC分页示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【kettle】kettle访问数据库系列文章及视频地址(更新中)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.这里整理了kettle访问数据库系列文章及视频地址整体链接&#xff0c;并及时补充、更新相关…

Web实时通信的学习之旅:轮询、WebSocket、SSE的区别以及优缺点

文章目录 一、通信机制1、轮询1.1、短轮询1.2、长轮询 2、Websocket3、Server-Sent Events 二、区别1、连接方式2、协议3、兼容性4、安全性5、优缺点5.1、WebSocket 的优点&#xff1a;5.2、WebSocket 的缺点&#xff1a;5.3、SSE 的优点&#xff1a;5.4、SSE 的缺点&#xff1…

Java中List<? extends T>与List<? super T>的区别

目录 概述List<? extends T>List<? super T><T extends Comparable<? super T>>示例 概述 在Java中&#xff0c;List<? extends T>和List<? super T>是用于表示具有泛型参数的列表的类型声明。它们之间的区别在于它们的作用和限制。…

AI图书推荐:ChatGPT全面指南—用AI帮你更健康、更富有、更智慧

你是否在努力改善你的健康&#xff1f; 你是否长期遭受财务困难&#xff1f; 你想丰富你的思想、身体和灵魂吗&#xff1f; 如果是这样&#xff0c;那么这本书就是为你准备的。 《ChatGPT全面指南—用AI帮你更健康、更富有、更智慧》&#xff08;CHATGPT Chronicles AQuick…

字符串实战

文章目录 c类型字符串定义遍历 c类型str定义字符串拼接获取指定位置的字符遍历截取字符串获取字符在字符串指定位置的索引 c类型字符串 定义 遍历 c类型str 定义 字符串拼接 获取指定位置的字符 遍历 截取字符串 获取字符在字符串指定位置的索引 #include #include …

linux进阶高级配置,你需要知道的有哪些(1)-Web网站服务

1、Apache主要特点 开放源代码、跨平台应用 支持多种网页编程语言 模块化设计、运行稳定、良好的安全性 2、apache的主要目录和文件 主配置文件: /usr/local/httpd/conf/httpd.conf 网页目录: /usr/local/httpd/htdocd/ 服务脚本: /usr/local/httpd/bin/apachectl 访问日志: /…

【ArcGISProSDK】condition属性

示例 通过caption属性可以看出esri_mapping_openProjectCondition的条件是一个工程被打开 condition的作用 由此可知示例中的Tab实在工程被打开才能使用&#xff0c;否则他禁用显示灰色&#xff0c;在未禁用的时候说明条件满足。 参考文档 insertCondition 元素 (arcgis.com…

操作系统实战(三)(linux+C语言实现)

实验目的 加深对进程调度概念的理解&#xff0c;体验进程调度机制的功能&#xff0c;了解Linux系统中进程调度策略的使用方法。 练习进程调度算法的编程和调试技术。 实验说明 1.在linux系统中调度策略分为3种 SCHED_OTHER&#xff1a;默认的分时调度策略&#xff0c;值为0…

HC-05的简介与使用

蓝牙概述 蓝牙&#xff08;Bluetooth&#xff09;是一种用于无线通信的技术标准&#xff0c;允许设备在短距离内进行数据交换和通信。它是由爱立信&#xff08;Ericsson&#xff09;公司在1994年推出的&#xff0c;以取代传统的有线连接方式&#xff0c;使设备之间能够实现低功…

机器学习-L1正则/L2正则

机器学习-L1正则/L2正则 目录 1.L1正则 2.L2正则 3.结合 1.L1正则 L1正则是一种用来约束模型参数的技术&#xff0c;常用于机器学习和统计建模中&#xff0c;特别是在处理特征选择问题时非常有用。 想象一下&#xff0c;你在装备行囊准备去旅行&#xff0c;但你的行囊有一…

DNS-域名系统

DNS-域名系统 1.工作逻辑 DNS&#xff08;域名系统&#xff09;是互联网的一项核心服务&#xff0c;它负责将人类可读的网址&#xff08;例如 www.google.com&#xff09;转换为计算机可理解的 IP 地址&#xff08;例如 172.217.0.4&#xff09;。下面是 DNS 的基本工作过程:…

JavaScript Web API 的概念

JavaScript Web API 是浏览器提供的一套可以用来操作和交互网页的接口集合。它允许开发者通过JavaScript代码来访问和操作浏览器的功能&#xff0c;例如DOM操作、事件处理、发送HTTP请求等。 以下是一些常见的JavaScript Web API&#xff1a; DOM API&#xff1a;允许开发者通…

L2-052 吉利矩阵 - java

L2-052 吉利矩阵 代码长度限制 16 KB 时间限制 1000 ms 内存限制 64 MB 栈限制 8192 KB 题目描述&#xff1a; 所有元素为非负整数&#xff0c;且各行各列的元素和都等于 7 的 33 方阵称为“吉利矩阵”&#xff0c;因为这样的矩阵一共有 666 种。 本题就请你统计一下&#xff0…

CAP与BASE分布式理论

一、分布式理论 1.CAP理论 CAP理论是说对于分布式数据存储&#xff0c;最多只能同时满足一致性&#xff08;C&#xff0c;Consistency&#xff09;、可用性&#xff08;A&#xff0c; Availability&#xff09;、分区容忍性&#xff08;P&#xff0c;Partition Tolerance&…

debian testing (预计13版本)wps字体无法正常显示

背 景 本人使用debian办公&#xff0c;原来使用的是debian 12,由于“生命不息&#xff0c;折腾不止“&#xff0c;终于将稳定版的debian 12升级为testing. 结果发现&#xff0c;debian 12能够正常使用的wps存在部分字体无法正常显示&#xff0c;经研究发现&#xff0c;原来是w…

(三十九)第 6 章 树和二叉树(二叉树的三叉链表存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrc…

JINGWHALE 虚拟现实物质与空间理论 —— 全息世界

JINGWHALE 对此论文相关未知以及已知概念、定理、公式、图片等内容的感悟、分析、创新、创造等拥有作品著作权。未经 JINGWHALE 授权&#xff0c;禁止转载与商业使用。 一、虚拟现实物质与空间理论 物质是由离散的奇点JING粒子&#xff0c;依据不同的维度粒度&#xff0c;通过…

uniapp开发微信小程序,选择地理位置uni.chooseLocation

<view click"toCommunity">点击选择位置</view>toCommunity() {const that thisuni.getSetting({success: (res) > {const status res.authSetting// 如果当前设置是&#xff1a;不允许&#xff0c;则需要弹框提醒客户&#xff0c;需要前往设置页面…

EXPLORER - Stone Age

一个程式化的包,包含史前建筑、巨石结构、角色、自然资产、工具和各种道具,可以添加到你的游戏中。 包装内容: + 570 资产。 男性和女性角色,包括数十件服装、皮肤和配饰。 - 8 - 预制角色变体 安装后即可直接使用。 - 15 - 包括动画(8个男性动画和7个女性动画),与Mecan…

Swift 函数

函数 一、函数的定义与调用二、函数参数与返回值1、无参数函数2、多参数函数3、无返回值函数4、多重返回值函数5、可选元组返回类型6、隐式返回的函数三、函数参数标签和参数名称1、指定参数标签2、忽略参数标签3、默认参数值4、可变参数5、输入输出参数四、函数类型1、使用函数…