Vor ein paar Tagen habe ich hier die Implementierung von Paging durch handgeschriebene SQL -Pagination -Abfrage geteilt. Schauen wir uns nun die Verwendung des MyBatis Paging Plugin Pageheplers an, um Paging zu implementieren.
Der Grund für die Verwendung des Paging-Plug-Ins besteht darin, das Schreiben von SQL-Code zu vereinfachen und bessere physische Paging zu erreichen, was auch Fehler reduzieren kann, als ein vollständiges Paging-SQL-Code zu schreiben.
MyBatis Paging Plugin Demo-Projektadresse: Free-Mybatis_PageHelper_JB51.rar
Ich benutze die Implementierung von Maven Project hier:
1. Importieren Sie zuerst die Abhängigkeiten des Paging -Plugins:
<De vorhöhe> <gruppe> com.github.pageHelper </Groupid> <artifactId> PageHelper </artifactId> <version> 5.0.0 </Version> </abhängig>
2. Konfigurieren Sie das Paging Interceptor-Plug-In
Es gibt zwei Konfigurationsseiten-Interceptor-Plug-Ins für offizielle Dokumente
1. Konfigurieren Sie das Interceptor-Plug-In in MyBatis Configuration XML
<!- Der Ort der Plugins in der Konfigurationsdatei muss die Anforderungen erfüllen, andernfalls wird ein Fehler gemeldet. Die Reihenfolge lautet wie folgt: Eigenschaften?, Einstellungen?, Typealien?, Typhandler?, ObjectFactory? interceptor = "com.github.pageHelper.PageInterceptor"> <!-Verwenden Sie die folgende Methode, um Parameter zu konfigurieren, und es werden alle Parameter später eingeführt-> <Eigenschaft name = "param1" value = "value1"/> </plugin> </plugins>
2. Konfigurieren Sie das Interceptor -Plugin in der Federkonfigurationsdatei
Mit der Attributkonfigurationsmethode von Spring können Sie das Plugins -Attribut verwenden, um es wie folgt zu konfigurieren:
<bean id = "
Hier verwende ich den zweiten Typ in meinem Projekt, und die darin enthaltenen Parameter werden gemäß der tatsächlichen Situation konfiguriert oder können ohne konfiguriert werden
3.. Methoden aufrufen
Mapper Layer SQL -Anweisungen werden gemäß der allgemeinen Abfragemethode geschrieben, ohne Paging zu schreiben:
<!-Pagination Query-> <select id = "findet" resultType = "Country"> ID, CountryName, CountryCode aus Land </select>
Mapper Layer -Schnittstelle:
/*** Abfrage* @param params* @return*/publiclist <Cound> finds ();
Service Service Layer -Schnittstelle:
/ ** * Pagination Query * @Param Params Paginationsparameter Pageno (Seitenzahl), pageSize (Anzahl der Abfragen pro Seite) * @return */ public pageInfo <country> findet (Params Params);
Service Business Layer -Implementierungsklasse: PageHelper.StartPage (1, 10); Der erste Parameter gibt an, welche Seite und der zweite Parameter die Anzahl der auf jeder Seite angezeigten Datensätze angibt
Nach der Ausführung des PageHelper.StartPage (1, 10); Die Erklärung, die erste Auswahlmethode unmittelbar folgt paginiert: List <Country> Blogs = CountryMapper.Finds ();
Verwenden Sie dann PageInfo, um die Abfrageergebnisse zu wickeln.
und geben Sie PageInfo in die Steuerungsschicht zurück
/*** Abfrage*/public pageInfo <Country> findet (Params Params) // int pageno = params.getPageno (); int pageSize = params.getPageSize (); PageHelper.StartPage (pageno, pageSize); LIST <COUNTS> Blogs = CountryMapper.Finds (); // Das Ergebnis mit PageInfo <Carand> pageInfo = new PageInfo <COUNTS> (Blogs) einwickeln; Rückgabe pageInfo; }
Nachdem Sie PageInfo hier zurückgegeben haben, übergebene die Parameter Paginationsparameter und analysieren Sie PageInfo an der Controller -Ebene:
List <Country> clist = pageInfo.getList (); Setzen Sie dann den Klima in den Umfang und verwenden Sie <C: foreach> </c: foreach>, um Paging -Daten/*** -Spage zu erhalten, und Pagination Query* @Return*/@RequestMapPing ("/index") public modelAndView Index (Params) {modelAndView modelandView = new modelandView (); // Zuerst die erste Seite, Abfrage 10 Params.setPageno (1); params.setPageSize (10); PageInfo <Country> pageinfo = CountryService.finds (Params); List <Country> clist = pageInfo.getList (); // Menge an Abfragen lange Couts = CountryService.Counts (); modelAndView.addObject ("Klist", Klinie); modelAndView.addObject ("Couts", Couts); modelAndView.setViewName ("Index"); return modelAndview; }Die oben genannten sind alle Implementierungscodes für Schlüsselseiten. Schauen Sie sich nun die Codes für alle Konfigurationen und Implementierungen an:
pom.xml
<project xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://maven.apache.org/pom/4.0.0" xsi: schemalocation = "http http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.krry</groupId> <artifactId>maven_pagehepler_ora</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <Name> maven_pageHepler_ora </name> <URL> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceEncoding> <! <targetJavaproject> $ {basiert}/src/main/java </targetJavaproject> <targetMapperPackage> com.isea533.mybatis.mapper </targetMapperPackage> <targetModelPackage> com.isea533.mybatis.model </targetModelPackage> -Gerpackage> </targetModelPackage> </targetmodelPackage> </targetModelPackage> <! <targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject> <targetXMLPackage>mapper</targetXMLPackage> <!-- Compile jdk version--> <jdk.version>1.6</jdk.version> <!-- Dependency version--> <mybatis.version>3.3.1</mybatis.version> <mapper.version> 3.3.6 </mapper.version> <pageHelper.version> 5.0.0 </pageHelper.version> <mysql.version> 5.1.29 </mysql.version> <spring.version> 4.1.2.Relase </Spring.version> <mybatis.spring.version>1.2.4</mybatis.spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId> log4j </artifactId> <version> 1.2.17 </Version> </abhängig> <!-web-> <depeaponcy> <gruppe> javax.servlet </gruppyId> <artifactid> servlet-api </artifactId> <version> 2.5 </Version> </scope> <gruppeId> javax.servlet.jsp </GroupId> <artifactId> jsp-api </artifactId> <version> 2.1 </version> <scope> bereitgestellt </scope> </abhängige <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> <version>1.2</version> </dependency> <!--Spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId> Spring-oxm </artifactId> </abhängig> <abhängigkeit> <gruppe> org.springFramework </Groupid> <artifactId> Spring-Jdbc </artifactId> </abhängig> <Depopact> <Groupid> org.springFramework </GroupID> <artifactid> </artifactid> </artifactid> </artifactid> </artifactid> </artifactid> </artifactid> </artifactid> <groupId>org.springframework</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <!--spring-oxm dependencies--> <dependency> <groupId>org.codehaus.castor</groupId> <artifactId>castor-xml</artifactId> <version>1.3.3</version> </dependency> <!--spring-json Abhängigkeit-> <De vor Ort> <gruppe> com.fasterxml.jackson.core </Groupid> <artifactId> Jackson-Databind </artifactid> <version> 2.4.2 </Version> </abhängig> <depelzie <artifactId>jackson-dataformat-xml</artifactId> <version>2.4.2</version> </dependency> <!--spring-aop dependency--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.2</version> </dependency> <!--upload file--> <dependency> <gruppeId> commons-fileUpload </GroupId> <artifactId> commons-fileUpload </artifactId> <version> 1.3.1 </Version> </abhängig> <!-mysql-> <abhängigkeit> <Groupid> MySQL </gruppen> <artifactid> mySql-connector-java </artifactid> <version> $ {mysql.version} </Version> </abhängig> <!-druid-> <depeaponcy> <GroupId> com.alibaba </Groupid> <artifactId> druid </artifactid> <version> 1.0.11 </Version> </abhängig> <!-mybatis-> <abhängigkeit> <entelligency> <Gruppenzusammenzüge> </gruppen> </gruppen> <gruppen> </gruppen> <gruppen> </grupping> <grupps> <gruppen> <entrocknungen> <gruppen> <entrocknungen> <gruppen> <gruppe <Gruppenzusammenzüge> </grupping> <gruppen> </gruppe org.mybatis </</<Staponcs> </gruppe org.mybatis </</<Staponencs> </grupp. <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <!-- Mybatis Generator-> <De vor Ort> <gruppe> org.mybatis.generator </GroupId> <artifactId> MyBatis-Generator-Core </artifactid> <version> 1.3.2 </Version> <Schops> kompilieren </scope> <option> true </optional> </abhängig> <! <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <!--General Mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${mapper.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId> Spring-Framework-Bom </artifactId> <version> $ {Spring.version} </Version> <typs> pom </type> <scope> import </scope> </abhängig> </abhängig> </abhängig> </abhängig <URL> http://maven.oschina.net/content/groups/public/ </url> <releases> <enabled> true </enabled> </releases> </snapshots> <Etabled> false </enabled> </snapshots> </repository> <polsory> <id> sonat-sonat-sonat- Releases</name> <url>http://oss.sonatype.org/content/repositories/releases</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>http://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repository> </repository> </repository> </build> <plugins> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build></project>applicationContext.xml
<? xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: context = "http://www.spingframework.org/schema/tx" xmlns: utring xmlns: p = "http://www.springframework.org/schema/p" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd "> <!-- Configuration Paketscanning-> <Context: Komponenten-scan-Basis-Package = "com.Krry"> < /context: component-scan> <!-Importieren externe Ressourcendateien-> <context: Eigenschafts-Placeholder-Ort = "ClassPath: jdbc.properties" /> <!-Konfigurieren Sie Druid Data Source-> <Dean id = "dataSource" Init. "-Methode". name = "driverClassName" value = "$ {db.driver}" /> <Eigenschaft name = "url" value = "$ {db.url}" /> <Eigenschaft name = "userername" value = "$ {db.username}" /<Eigenschaft name = "passacting" $ $ {db.password} " /> < /bean> id = "txmgr"> <Eigenschaft name = "dataSource" ref = "dataSource"> </property> </bean> <!-Aktivieren Sie den Transaktionsannotations-Treiber-> <tx: Annotationsmotiv transaktionsmanager = "txmgr"/<!-Konfigurieren Sie myBatis 'sqlSessionfactory-> <BERACH ". name = "dataSource" ref = "dataSource"/> <Eigenschaft name = "configLocation" value = "classPath: mybatis-config.xml"> </property> <Eigenschaft name = "typealiaSespackage" value = "com.Krry.Entity"/> <Eigentum nutzen "Plugins". Wenn Sie es nicht verstehen, müssen Sie die folgende Konfiguration entfernen-> <Eigenschaft name = "properties"> <value> </value> </property> </bean> </array> </property> </bean> <! value = "com.krry.mapper"> </property> <Eigenschaft name = "sqlSessionFactoryBeanname" value = "mybatis-config.xml
<xml Version = "1.0" coding = "utf-8"?> <! docType configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" <-configuration> <configuration> <Booths> <!-<smarka-mappell.dtd "<; name = "cacheeNabled" value = "true" /> <!-Schalten Sie das sofortige Laden des zugehörigen Objekts für die Leistung aus-> <Einstellung Name = "LazyLoadingenabab" value = "true" /> <!-Legen Sie die Form des Ladens des zugehörigen Objekts fest. Hier ist ein Lastfeld auf Bedarf (das Lastfeld wird durch SQL angegeben). Alle Felder der zugehörigen Tabelle werden nicht geladen, um die Leistung zu verbessern. value = "true" /> <!-Erlauben Sie, benutzerdefinierte Primärschlüsselwerte (z. B. UUID 32-Bit-Codierung, die vom Programm als Schlüsselwerte generiert werden) zu verwenden, und die Strategie zur PK-Erzeugung der Datentabelle wird überschrieben. <!-Cache SQL für Batch-Update-Vorgänge zur Verbesserung der Leistung-> <Einstellungsname = "DefaultExecutortype" value = "batch" /> <!-Timeout Wenn die Datenbank nicht mehr als 25.000 Sekunden geantwortet hat-> <Einstellung Name "defaultStatementTimeOut", "value =" 25 " /> <Einstellungsname =" LazyLadermethods ". value = "Equals, Clon, HashCode, toString"/> </Einstellungen> <typealias> <!-Alias für benutzerdefiniertes Benutzerobjekt-> <!-<typealias type = "com.krry.mybatis.sysmanage.Entity.user" alias = "user"/>-> <! </Konfiguration>
SpringMvc.xml
<? xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/util" xmlns: mvc = "http XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-Wenden Sie den Annotationsmodus-Treiber ein. FormatingConversionServiceFactoryBean-> <mvc: Annotationsgetrieben> <MVC: Message-Converters Register-Defaults = "True"> <bean> <Eigenschaftsname = "SupportedMediTypes"> <liste> <wert> text/plain; charset = utf-8 </value> <value> text> text> html; </bean> <bean/> <bean/> <bean> <bean> <Eigenschaft name = "Präfixjson" value = "false"/> <Eigenschaft name = "ObjectMapper"> <bean> <! HH: MM: SS "/> </bean> </Property> <!-Nicht angezeigt, wenn das Feld null ist-> <Eigenschaft name =" serializationInclusion "> <value type =" com.fasterxml.jackson <wert> application/json; charSet = utf-8 </value> <wert> application/x-www-form-urlencoded; charSet = utf-8 </value> </list> </property> </bean> </mvc: message-kontext: conconverters> </mvc: Annotation-Annotation> <! Base-Package = "com.krry.controller"> </context: component-scan> <! Filterung-> <!-<MVC: Standard-Servlet-Handler //>-> <MVC: Ressourcen maping = "/ressource/**" location = "/ressource/"/> <!-Rendering JSP/Freemaker/Velocity-A. Suffix-> <Eigenschaft name = "suffix" value = ". jsp"> </property> </beans>
jdbc.properties und log4j.properties müssen nicht angezeigt werden, sie sind fast gleich
web.xml
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_2_2.xsd" Version = Javaee/web-App- <diageinenname> maven_pageHepler </display-name> <Welcome-File-List> <Welcome-File> Index/Index </Welcome-Datei <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <URL-Muster>/*</url-puster> </filter-mapping> <servlet> <Servlet-name> maven_pageHepler </servlet-name> <Servlet-Class> org.springFramework.web.Servlet.Dispatcherservlet </Servlet-Class> <init-Param> <Param-heber-Contuexs-Contexteclact </servlet-classe> <init-param> <paramName> <paramname> <paramname> <paramname> <param- <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>maven_pagehepler</servlet-name> <url-pattern>/index/index</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-mapping> <servlet-name> maven_pageHepler </servlet-name> <URL-Muster>/</url-pattern> </servlet-mapping> </web-App>
Entitätsklasse: Country.java
Paket com.krry.Entity; öffentliche Klasse Country { / *** Primärschlüssel* / private Integer id; / *** Name*/ privat String CountryName; / *** Code*/ private String CountryCode; Public Country (Ganzzahl -ID, String CountryName, String CountryCode) {this.id = id; this.countryName = CountryName; this.countryCode = CountryCode; } / *** Holen Sie sich den Primärschlüssel** @return ID - Primärschlüssel* / public Integer getId () {return id; } / *** Setzen Sie den Primärschlüssel** @param ID Primärschlüssel* / public void setID (Integer id) {this.id = id; } / *** Name erhalten** @return CountryName - Name* / public String getCountryName () {return CountryName; } / *** Name** @param CountryName Name* / public void setCountryName (String CountryName) {this.countryName = CountryName; } / *** Code erhalten** @Return CountryCode - Code* / public String getCountryCode () {return countryCode; } / *** CODE** @PARAM COOMALSCODE CODE* / public void setCountryCode (String CountryCode) {this.countryCode = CountryCode; }}Params.java
Paket com.krry.entity;/** * * Params * @author krry * @version 1.0.0 * */public class Params {private Integer pageSize = 10; private Ganzzahl pageno = 0; public Integer getPageno () {return pageno; } public void setpageno (Integer pageno) {this.pageno = pageno; } public Integer getPageSize () {return pageSize; } public void setPageSize (Integer pageSize) {this.pageSize = pageSize; }} Persistenzschicht: CountryMapper.java
Paket com.krry.mapper; import java.util.list; import com.krry.entity.country;/** * * MAPPER: Betriebsdatenbank * @author krry * @Version 1.0.0 * */public interface landesmapper {/** * query * @param params * @return */public lists () funde (). / ** * berechnen * com.krry.dao.admin * Methodame: countblogs * @author krry * @param params * @return int * @Exception * @Since 1.0.0 */ public Long Counts (); } CountryMapper.xml
<? > <!-Pagination Query-> <select id = "findet" resultType = "landes"> id, landesname, CountryCode aus Land </select> <!-Abfragen Sie die Anzahl der Blogs ab-> <select id = "zählt" resultType = "long"> count
Geschäftsschichtschnittstelle:
Paket com.krry.service; import java.util.hashMap; import Java.util.list; import Javax.servlet.http.httpServletRequest; Import org.apache.ibatis.Annotations.param; import com.github.pageHelper.pageInfo; com.krry.entity.params;/** * Serviceschicht: Handlungslogik bearbeiten (implementiert in Impl) * @Author Asusaad * */public interface icountryService {/** * Pagination Abfrage für alle Blogs * @param Params Pagination Parameter Pageno (Page -Number), Pagesizing (Anzahl der Fundstoffe). Parameter); / ** * Berechnen Sie die Anzahl der Blogs * @param params * @return */ public Long Counts (); } Business Layer -Implementierungsklasse
Paket com.krry.service.impl; import Java.util.hashMap; Import Java.util.List; org.springframework.bean.factory.Annotation.autowired; com.github.pageHelper.pageHelper; import com.github.pageHelper.pageInfo; com.krry.entity.country; com.krry.entity.params import com.krry.mapper.countryMapper; Asusaad * */ @ServicePublic Class CountryService implementiert icountryService {@autowired Private Country Countrymapper; /*** Abfrage*/public pageInfo <Country> findet (Params params) {// Abfrage int pageno = params.getPageno (); int pageSize = params.getPageSize (); PageHelper.StartPage (pageno, pageSize); LIST <COUNTS> Blogs = CountryMapper.Finds (); // Das Ergebnis mit PageInfo pageInfo <COUNTS> PageInfo = new PageInfo <Country> (Blogs); Rückgabe pageInfo; } / ** * Berechnung * @param params * @return * / public Long Counts () {Long Couts = countryMapper.Counts (); Return Couts; }} Steuerungsschicht: KryController.java
Paket com.krry.controller; import Java.util.ArrayList; import Java.util.hashMap; Import Java.util.List; import org.junit.test; import org. org. com.krry.entity.params; import com.krry.service.icocom. IcountryService CountryService; /*** Homepage und Pagination Query* @return*/@RequestMapping ("/index") public modelAndView Index (Params params) {modelAndView modelAndView = new modelAndView (); // Zuerst die erste Seite, Abfrage 10 Params.setPageno (1); params.setPageSize (10); PageInfo <Country> pageinfo = CountryService.finds (Params); List <Country> clist = pageInfo.getList (); // Menge an Abfragen lange Couts = CountryService.Counts (); modelAndView.addObject ("Klist", Klinie); modelAndView.addObject ("Couts", Couts); modelAndView.setViewName ("Index"); return modelAndview; }/** * Pagination -Abfrage für AJAX -Anforderung * @param params * @return */@ResponseBody @RequestMapping ("/loadData") public HashMap <String, Object> loadData (Params Params) {Hashmap <String, Objekt> map = new Hashmap <String, Objekt, Objekt> (); PageInfo <Country> pageinfo = CountryService.finds (Params); List <Country> clist = pageInfo.getList (); map.put ("klist", klist); Rückgabekarte; } //}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.