English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La pagination est utilisée pour afficher un grand nombre d'enregistrements dans différentes parties. Dans ce cas, nous afficherons10,20 ou50 enregistrement. Pour les autres enregistrements, nous fournissons des liens.
Nous pouvons créer simplement un exemple de pagination en Spring MVC. Dans cet exemple de pagination, nous utilisons la base de données MySQL pour obtenir les enregistrements.
Ici, nous avons déjà créé la table "emp" dans la base de données "test". La table emp possède trois champs: ID, nom et salaire. Créez la table et insérez manuellement les enregistrements, ou importez notre fichier SQL.
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>
Ici, la classe bean contient des variables correspondant aux champs existants dans la base de données (ainsi que les méthodes setter et getter).
Emp.java
package com.w3codebox.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; } }
Dans la classe contrôleur, @PathVariable Les annotations commentent lient les paramètres de méthode à des URL temporaires. Par exemple:
@RequestMapping(value="/viewemp/{pageid}"
Ici, {} les crochets contiennent des valeurs temporaires.
EmpController.java
package com.w3codebox.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.w3codebox.beans.Emp; import com.w3codebox.dao.EmpDao; @Controller public class EmpController { @Autowired EmpDao dao; @RequestMapping(value="/viewemp/{pageid}" public String edit(@PathVariable int pageid, Model m){ int total =5; 1){} else{ pageid = (pageid-1)*total+1; } System.out.println(pageid); List<Emp> list = dao.getEmployeesByPage(pageid, total); m.addAttribute("msg", list); return "viewemp"; } }
Lais-nous créer une classe DAO pour accéder aux données nécessaires dans la base de données.
EmpDao.java
package com.w3codebox.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.w3codebox.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; } }); } }
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>
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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.w3codebox.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.w3codebox.dao.EmpDao"> <property name="template" ref="jt"></property> </bean> </beans>
index.jsp
<!DOCTYPE html> <html> <body> <a href="viewemp/1">View Employees</a> </body> </html>
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>
Output: