English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pagination wird verwendet, um eine große Anzahl von Einträgen in verschiedenen Abschnitten anzuzeigen. In diesem Fall zeigen wir auf einer Seite10、20 oder50 Einträge. Für die übrigen Einträge bieten wir Links an.
Wir können in Spring MVC einfach ein Paginierungsbeispiel erstellen. In diesem Paginierungsbeispiel verwenden wir die MySQL-Datenbank, um Datensätze zu erhalten.
Hier haben wir bereits die "Test"-Datenbank und die "emp"-Tabelle erstellt. Die emp-Tabelle hat drei Felder: ID, Name und Gehalt. Erstellen Sie die Tabelle und fügen Sie Zeilen manuell hinzu oder importieren Sie unsere SQL-Datei.
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>
Hier enthält die Bean-Klasse Variablen, die den in der Datenbank vorhandenen Feldern entsprechen (sowie Setter- und Getter-Methoden).
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; } }
In der Controllerklasse, @PathVariable Kommentare binden Methodenparameter an temporäre URLs. Zum Beispiel:
@RequestMapping(value="/viewemp/{pageid}"
Hier enthalten {} Klammern temporäre Werte.
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"; } }
Lassen Sie uns eine DAO-Klasse erstellen, um auf die erforderlichen Daten in der Datenbank zuzugreifen.
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">AnsichtMitarbeiter</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>Mitarbeiterliste</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>
Ausgabe: