English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring MVC Paginierungsbeispiel

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.

Erstellen Sie die Tabelle oder importieren Sie die SQL-Datei

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.

Spring MVC Paginierungsbeispiel

1、den Abhängigkeitsverzeichnis in die Datei pom.xml hinzufügen.

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、erstellen Sie eine Bean-Klasse

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;  
}  
  
}

3、erstellen Sie eine Controllerklasse

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";  
    }  
}

4、Erstellen Sie eine DAO-Klasse

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;  
        }  
    });  
}  
}

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/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>

7、创建请求的页面

index.jsp

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

8、ErstellungvonAnsichtskomponenten

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: