Este blog presenta la función de paginación basada en el marco ORM de Spring Data más el complemento jQuery.pagination.
Este blog se basa en un proyecto de código abierto de GitHub en desarrollo. La dirección del código del proyecto es: https://github.com/u014427391/Jeepatform
Bienvenido a Star (colección) o descargar para aprender, y todavía se está desarrollando ...
Introducir el marco de datos de Spring
Datos de resorte: un subproyecto de primavera. Se utiliza para simplificar el acceso a la base de datos y admitir NoSQL y el almacenamiento de datos relacionales.
El siguiente es el almacenamiento NoSQL compatible con el proyecto SpringData:
* MongoDB (base de datos de documentos)
* Neo4J (base de datos gráfica)
* Redis (Tienda de clave/valor)
* HBase (Base de datos familiares de columna)
Tecnologías de almacenamiento de datos relacionales compatibles con los proyectos de SpringData:
* JDBC
* JPA
Datos de Spring JPA: dedicado a reducir el volumen de desarrollo de la capa de acceso de datos (DAO). Los desarrolladores solo necesitan escribir la interfaz de la capa de persistencia, y luego otros marcos ayudarán a los programadores a implementarlos.
Pasos de desarrollo:
【Spring Data implementa la adquisición de datos】
Este proyecto usa Maven, por lo que puede consultar mi configuración de Maven:
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/maven-v4_0_0.xsd "> <-parent> <artifactid> reflexiona </artifactid> <grupoid> org.muses </proupid> <versión> 1.0-snapshot </version> </rent> <modelversion> 4.0.0 </modelversion> <artifactid> jeepartform-admin </artifactid> <packaging> war </packaging> <name> jeepartform-admin maven webapp </name> <sl> http://maven.apache.org </url> <perties> <verver.version> 4.1.5.release </spring.version> <Spring-Data-JPA.Version> 1.4.2.Release </spring-data-jpa.version> <spring-data-commons.version> 1.6.2.release </spring-data-commons.version> <Hibernate.version> 4.3.8.final </hibernate.version> <hiro.version> 1.2.3 <//////version> <lucene.version> 4.7.2 </lucene.version> <druid.version> 1.0.9 </druid.version> <poi.version> 3.7 </poi.version> </propiedades> <pendencies> <!-Module Start-> <propedence> <MoupRid> Org.muses </proupid> <artifactid> jeepatform-ceReRe </artifact-core </Artifact-Core </Artifact-Core </ArtifactId <Persion> $ {jeepatform.core.version} </versewer> </pendency> <epardency> <uproupid> org.muses </uproupid> <artifactid> jeepatform-common </artifactid> <versever> 1.0-snapshot </sions> </pendency> <sependency> <grupiD> org.muses </groupid>> <artifactid> jeepatform-oss </artifactid> <versión> $ {jeepatform.oss.version} </versión> </pendency> <pendency> <MoupRupid> org.muses </groupId> <AtifactId> jeepatform-upms </artifactId> <PROPELLE> 1.0-SNAPSHOT </lipever> </spendency> < Inicio-> <Spendency> <MoupRid> javax.servlet </groupid> <artifactid> servlet-api </arfactid> <versión> 2.5 </versión> <cope> proporcionó </cope> </pendency> <!-servlet end-> <!-jstl start-> <epentinency> <proupid> jstl </groupid> <artifactid> jstl </arthid> <versión> 1.2 </verversion> </pendency> <pendency> <grupoD> taglibs </groupid> <artifactid> Standard </arfactid> <verserse> 1.1.2 </verversion> </dependency> <!-jstl end-> <!-log4j start-> <epardency> <grupid> log4j </groupid> <artifactid> log4j </artement> <Version> $ {log4j.version} </versión> </pendency> <!-log4j end-> <!-JSON PARSING requerido jar inicio-> <pendency> <MoupRoD> commons-beanutils </groupId> <AtifactId> commons-beanutils </artifactid> <PROPORed 1.8.3 </versión> </dependence> <pendency> <MoupRid> Commons-Collections </groupid> <artifactid> commons-colections </artifactid> <ververy> 3.2.1 </versión> </pendency> <pendency> <grupoD> net.sf.ezmorph </proupId> <artifactid> ezmorph </artifactid> <preion> 1.0.6 </versión> </spendency> <pendency> <MoupRid> Commons-Lang </groupid> <artifactid> commons-lang </artifactid> <verserse> 2.5 </versewer> </pendency> <pendency> <MoupRupid> Commons-logging </groupId> <AtifactId> commons-gingging </artifactid> <versersever> 1.2 </lection> </dependency> <pendency> <proupid> net.sf.sf.sf.json </groupid> <AtifactId> JSON-LIB </arfactid> <versión> 2.4 </versión> <prote> jar </pype> <classifier> jdk15 </classifier> <cope> compilar </cope> </pendency> <!-Jar End requerido para la parsación JSON-> <!-MySQL Start-> <Efferency> <grupid> mysql </groupid> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!-- mysql end--> <!-- commons --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0.1</version> </dependency> <Spendency> <MoupRoD> Commons-FileUpload </groupid> <artifactid> Commons-FileUpload </artifactId> <verserse> 1.2.2 </versewers> </pendency> <!-Commons-> <!-Spring Framework Start-> <Spendency> <MoupRid> Org.SpringframeWork </proupid> <ArtiFACTId> Spring-Core </ArtifeNidency> <Persion> $ {spring.version} </verse> </dependence> <epardency> <mupoupid> org.springframework </uproupid> <artifactid> spring-beans </artifactid> <version> $ {spring.version} </versión> </dependency> <epardency> <proupid> org.springframework </groupid> <artifactid> spring-Context </artifactid> <versión> $ {spring.version} </versión> </pendency> <pendency> <uproupid> org.springframework </proupid> <arifactid> spring-context-support </artifactid> <lection> $ {spring.version} </versión> </bendency> <pendency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <Spendency> <MoupRoMID> org.springframework </groupid> <artifactId> spring-test </artifactId> <versever> $ {spring.version} </versión> <cope> test </encope> </pendency> <pendency> <grupo> org.springframework </groupid> <artifactid> spring-web </artifactid> <versión> $ {spring.version} </versión> </pendency> <!-Spring Framework End-> <!-Spring AOP Start-> <Spendency> <MoupRupid> org.springframework </groupid> <artifactid> spring-aoop </artifactid> <versionsion> $ {spring.Version} </presion> <pendency> <pendency> <ProupId> <SartifactId> spightJWeaver </arfactid> <versión> 1.6.10 </versión> </pendency> <!-Spring AOP End-> <!-SpringMVC Start-> <Spendency> <ProupId> Org.SpringFramework </groupId> <AtifactId> spring-webmvc </artifactiD> <RELESELEDEDIRIRSE> </Versión </Versión}/Versión </Versión} < <artifactID> spring-data-jpa </artifactid> <versión> $ {spring-data-jpa.version} </versión> </pendency> <pendency> <proupid> org.springframework.data </groupid> <artifactid> spring-data-comson < <artifactid> hibernate-core </artifactid> <versión> $ {hibernate.version} </versión> </pendency> <spendency> <moupid> org.hibernate </groupid> <artifactID> hibernate-eNityManager </artifactid> <versión> $ {hibernate.version} <//versión> </Versión> </hihifernate <! JPA End-> <!-Hibernate Echache Start-> <Spendency> <MoupRoD> org.slf4j </groupid> <artifactid> slf4j-api </arfactid> <versión> 1.6.1 </versión> </pendency> <pendency> <proupid> net.sf.ehcache </groupid> <artifactid> ehcachacy <Versión> 2.5.0 </versión> </pendency> <epardency> <grupoD> org.hibernate </proupid> <artifactID> hibernate-ehcache </artifactid> <versión> $ {hibernate.version} </versión> </dependency> <!-HiBernate Echache End-> <!-ALIBABA DEL CONECTIÓN DEL CONEXIÓN-STUNE-STAR-<! <MoupRid> com.alibaba </groupid> <artifactid> druid </artifactid> <ververy> $ {druid.version} </versewers> </pendency> <!-ALIBABA's Connection Pool Druid End-> <!-Hibernate Echache End-> <!-HiBERNate Echache End-> <!-HiberceChache End-!-Connection- Pool Druid End-> <!-shiro start-> <pepertency> <MoupRid> org.apache.shiro </groupid> <artifactid> shiro-all </artifactid> <version> $ {shiro.version} </versión> </dependencia> <!-shiro end-> <!-Velocity Start-> <pendentency> <MoupRid> org.apache.velocity </groupid> <artifactid> velocity </artifactid> <versions> 1.6 </versewer> </pendency> <pendency> <proupid> org.apache.velocity </proupId> <artifactID> velocity-tools </artifactId> <version> 2.0 </versión> </spendency> <! Velocity Tools. Lucene Start Engine del motor de búsqueda de texto completo-> <pendency> <uproupid> org.apache.lucene </proupid> <artifactid> Lucene-core </arfactid> <versión> $ {Lucene.version} </versión> </pendency> <pendency> <uproupid> org.apache.lucene </proupid> <artifactid> lucene-analyzers </artemon </artemon </artiFact> <versión> $ {Lucene.version} </versewer> </pendency> <epardency> <uproupid> org.apache.lucene </groupid> <artifactid> lucene-queryparser </artifactid> <versión> $ {Lucene.version} </versión> </pendency> <defeferency> <grupeD> org.apache.lucene </groupid> <artifactid> Lucene-Memory </arfactid> <versever> $ {Lucene.version} </versión> </pendency> <pendency> <uproupid> org.apache.lucene </proupid> <artifactid> Lucene-Highlighter </artifactID> <Persion> $ {Lucene.version} </Version> </spendency> <ath! Coordenadas Maven, agrégalas al repositorio local usted mismo -> <pendency> <MoupRoid> org.wltea.analyzer </proupid> <artifactid> iKanalyzer </artifactid> <versión> 2012ff_u1 </versión> <cope> system </pope> <SystemPath> $ {Basedir} /src/main/webapp/web-inf/lib/ikanalyzer2012ff_u1.jar </systempath> </pendency> <!-Lucene Full Text Ending End-> <!-Log4j Start-> <epardency> <ProupID> log4j </groupid> <artifactid> log4j </art. <Version> $ {log4j.version} </versión> </pendency> <!-log4j end-> <!-JSON PARSING requerido jar inicio-> <pendency> <MoupRoD> commons-beanutils </groupId> <AtifactId> commons-beanutils </artifactid> <PROPORed 1.8.3 </versión> </dependence> <pendency> <MoupRid> Commons-Collections </groupid> <artifactid> commons-colections </artifactid> <ververy> 3.2.1 </versión> </pendency> <pendency> <grupoD> net.sf.ezmorph </proupId> <artifactid> ezmorph </artifactid> <preion> 1.0.6 </versión> </spendency> <pendency> <MoupRid> Commons-Lang </groupid> <artifactid> commons-lang </artifactid> <verserse> 2.5 </versewer> </pendency> <pendency> <MoupRupid> Commons-logging </groupId> <AtifactId> commons-gingging </artifactid> <versersever> 1.2 </lection> </dependency> <pendency> <proupid> net.sf.sf.sf.json </groupid> <artifactid> json-lib </sartifactid> <versión> 2.4 </versión> <proye> jar </pype> <classifier> jdk15 </classifier> <cope> compilar </cope> </pependency> <!-JSON Parsing Jar End-> <!-Poi Start-> <Spendency> <ProupID> org.apache.poi </groupid> <artifactid> poi </arfactid> <versever> $ {poi.version} </versión> </pendency> <!-poi end-> <!-start de correo electrónico-> <pendency> <MoupRoid> com.sun.mail </groupid> <artifactid> javax.mail </artifactID> <proonsion> <Ditor> <finalName> jeepatform-admin </finalName> </build> </proyecto> Diseñe la base de datos y escriba una clase de entidad:
paquete org.muses.jeepatform.model.entity; import java.util.date; import java.util.set; import javax.persistence.cascadeType; import javax.persistence.column; import javax.persistence.Entity; import javax.persistence.fetchtype; import javersistence. javax.Persistence.GenerationType; import javax.persistence.id; import javax.persistence.joincolumn; import javax.Persistence.Jointable; import javax.persistence javax.persistence.temporaltype;/***Clase de entidad de información del usuario*@author nicky*/@entity@table (name = "sys_user") Usuario de clase pública {/** ID de usuario **/private int id; / ** Nombre de usuario **/ Nombre de usuario de cadena privada; / ** Contraseña de usuario **/ contraseña de cadena privada; / ** Número de teléfono móvil **/ Private Int Telephy; / ** Género **/ sexo privado de cadena; / ** Correo electrónico **/ Correo electrónico de cadena privada; / ** Nota **/ Marca de cadena privada; / ** Nivel de usuario **/ Rango de cadena privada; / ** Última vez **/ fecha privada LastLogin; / ** Iniciar sesión IP **/ String private Loginip; / ** ruta de imagen **/ String private ImageUrl; / ** Tiempo de registro **/ Regtime de fecha privada; / ** Si la cuenta está bloqueada **/ privado boolean bloqueado = boolean.false; roles de set privado <rol>; @GeneratedValue (estrategia = generationType.identity) @id public int getId () {return id; } public void setid (int id) {this.id = id; } @Column (unique = true, longitud = 100, nullable = false) public String getUsername () {return UserName; } public void setUsername (String UserName) {this.Username = username; } @Column (longitud = 100, nullable = false) public string getPassword () {return Password; } public void setPassword (String Password) {this.password = contraseña; } public int getPhone () {return Phone; } public void setphone (int phone) {this.phone = phone; } @Column (longitud = 6) cadena pública getsex () {return sex; } public void setsex (sexo de cadena) {this.sex = sex; } @Column (longitud = 100) cadena pública getemail () {devuelve correo electrónico; } public void setEmail (correo electrónico de cadena) {this.email = correo electrónico; } @Column (longitud = 30) public String getmark () {return mark; } public void setmark (string mark) {this.mark = mark; } @Column (longitud = 10) cadena pública getRank () {return rank; } public void setRank (string rank) {this.rank = rank; } @Temporal (temporaltype.date) fecha pública getLastLogin () {return LastLogin; } public void setLastLogin (fecha lastLogin) {this.lastLogin = lastLogin; } @Column (longitud = 100) cadena pública getLoginip () {return loginip; } public void setLoginip (String Loginip) {this.loginip = loginip; } @Column (longitud = 100) cadena pública getImageUrl () {return imageUrl; } public void setImageUrl (string imageUrl) {this.imageUrl = imageUrl; } @Temporal (temporaltype.date) @column (nullable = false) fecha pública getregtime () {return regtime; } public void setregtime (date regtime) {this.regtime = regtime; } public boolean getLocked () {return bloqueado; } public void setlocked (boolean bloqueado) {this.locked = bloqueado; }}Escriba la interfaz para implementar la interfaz Paging ySortingRepository de Spring Data Framework
paquete org.muses.JeepartForm.repository; import org.muses.JeepartForm.model.entity.user; importar org.springframework.data.domain.page; importar org.springframework.data.domain.pageable; import og.springframework.data.pagible; importable; importable; importable; importable; importable; importable; importable; importable; importable; importable; importable; importable; importable; importable; import org.springframework.data.jpa.repository.jparpository; import org.springframework.data.repository.Query; import org.springframework.data.repository.pagingandSortingRepository; import org.springFrameWork.data.Repository.Qreery.Param; Interface UserRepository extiende Paging ySortingRepository <user, integer> { /*user findByUserName (String UserName); @Query ("Desde el usuario u donde u.username =: username y u.password =: contraseña") usuario findbyusernameandpassword (@param ("username") string username, @param ("contraseña") cadena contraseña); @Query ("del usuario u donde u.id =: id") user findByid (@param ("id") int id); @Query ("De User U Where Date_Format (U.LastLogin, 'aaa yyyy-mm-dd') entre date_format ((: startDate), 'aaa yyy-mm-dd') y date_format ((: endDate), 'yyyyyy-mm-dd')") Página <serers> Searchu (@Param ("StartDate") Date StartDate,@parámetro date ")") End Datate, Amonable Ayaceable);*/}Implementación de clase ejecutiva:
paquete org.muses.Jeepatform.service; import java.util.*; import org.muses.Jeepatform.model.entity.user; import org.muses.Jeepatform.Repository.userRepository; import og.springfframework.beans.factory.annotation.autowired; import org.springframework.data.domain.page; import org.springframework.data.domain.pagerequest; import org.springframework.data.domain.sort; import org.springframework.data.jpa.domain.pecificat org.springframework.transaction.annotation.transactional; import javax.persistence.criteria.Criteriabuilder; import javax.persistence.criteria.criteriaQuery;/*** @Description Class de clase para la gestión de la información del usuario* @author Nicky* @Date 6 de marzo de 2017*/ @ @Service ClasseSeStouseStouseStousing UserStoin userRepository; / ** * Build Pagerequest Object * @param num * @param size * @param asc * @param string * @return */ private pagequest buildPagequest (int num, int size, sort.direction asc, string string) {return New Pagerequest (num-1, tamaño, nula, cadena); } / *** Obtenga toda la información del menú y visítela en las páginas* @param pageno* Número actual de páginas* @param páginas* Número de páginas por página* @return* / @transactional Public Page <serer> findall (int pageno, int pageSize, sort.direction dir, string str) {pagerequest request = buildPagequest, pageSize, PageSize, PageSize, PageSize, PageSize, Dir, str) {Pagequest Solic. Página <Ser User> Users = UserRepository.Findall (solicitud); devolver usuarios; }}La clase de control adopta el marco SpringMVC, primero escriba un controlador base para implementar algunas funciones generales:
paquete org.muses.Jeepatform.web.Controller; import javax.servlet.http.httpservletRequest; import org.slf4j.logger; import org.slf4j.loggerFactory; import org.springframework.web.context.request.servletRequestatTributes; import org.springframework.web.servlet.modelandview; public class BaseController {logger log = null; / *** Get Get Log Object* @Return*/ public logger getInStance () {if (log == null) {log = loggerFactory.getLogger (basecontroller.class); } RETURN ROG; } / *** Obtenga el objeto de solicitud* / public httpservletRequest getRequest () {httpservletRequest request = ((ServLetRequestatTributes) requestContextholder.getRequestatTributes ()). GetRequest (); solicitud de devolución; } / ** * Get ModelAndView * / public ModelAndView getModelandView () {return new ModelAndView (); }}Implementación de la clase de control:
paquete org.muses.Jeepatform.web.Controller; import net.sf.json.jsonArray; import net.sf.json.jsonObject; import net.sf.json.jsonconfig; import og.apache.commons.collections.map.hashedmap; import org.muses.Jeepatform.core.excelviewwrite; import org.muses.Jeepatform.core.Javaemailsender; importar org.muses.jeepatform.model.entity.user; import og.muses.Jeepatform.service.userService; importar; org.muses.Jeepatform.utils.datejsonValueProcessor; importar org.muses.Jeepatform.utils.dateutils; importar org.springframework.beans.factory.annotation.aUtowired; import org.springfframework.data.domain.page; import erg.springfframwork.dates org.springframework.steretype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.requestparam; import org.springfringfring.web. org.springframework.web.servlet.modelandview; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import java.io.printwriter; import java.util.*;/*** creado por Nicky en 2017/29. */@Requestmapping ("/user")@controlerPublic class UserController extiende Basecontroller {@aUtoWired UserService UserService; /** * Consulte toda la información del administrador y muestrela en las páginas * @param Solicitud * @param Respuesta * @param modelo * @return */@requestmapping (valor = "/queryall", produce = "aplicación/json; charset = utf-8") @ResponseBody public ModelDview FindAll (httpServletRequest Solicitud, htttpSEvletResse Stapsess, respuesta modelo. PageIndexStr = request.getParameter ("PageIndex"); // Número de páginas por página int PAGESIZE = constants.page_size; ModelandView mv = this.getModelandView (); Página <Serement> UserPage; if (pageIndexStr == null || "". Equals (PageIndexStr)) {PageIndexStr = "0"; } int pageIndex = Integer.ParseInt (PageIndexStr); userPage = Userservice.findall (PageIndex+1, PageSize, Sort.Direction.asc, "ID"); MV.AdDObject ("TotalCount", UserPage.GetToTalElements ()); mv.AdDoBject ("PageIndex", PageIndex); // jsonConfig cfg = new JsonConfig (); // cfg.setExCludes (new String [] {"Handler", "HibernatelAzyInitializer"}); JSONCONFIG JCG = new JsonConfig (); jcg.registerjsonValueProcessor (date.class, new DateJSONValueProcessor ("aaa yyyy-mm-dd")); JSONArray JSONArray = jsonArray.FromObject (userPage.getContent (), JCG); //System.out.println (jsonArray.ToString ()); MV.AdDObject ("Usuarios", jsonArray.ToString ()); mv.setViewName ("Admin/user/sys_user_list"); regresar MV; }} 【Implementación de la página front-end】
Vista de página Implementación, consulte JQuery.pagination.js (Pagination JS) y Pagination.css (CSS de estilo de paginación).
Puede descargarlo aquí: //www.vevb.com/article/105013.htm
<%@ página contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "fmt" " uri = "http://java.sun.com/jsp/jstl/fmt"%> <% string path = request.getContextPath (); String BasePath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerPort ()+path+"/";%> <! DocType html> <html lang = "zh-cn"> <Head> <Base href = "<%= basepath) charset = "utf-8"/> <meta http-equiv = "x-ua-compatible" content = "ie = edge"> <meta name = "viewport" content = "width = dispositivo-width, escala inicial = 1"> <title> Insertar título aquí </title> <!-Bootstap style-> <Link type = "Text/css" Rel = "Stylesheet" Stylesheet "Styles" Styles "Styles" Styles. href = "<%= basepath%> plugins/page/css/bootstrap-3.3.5.5.min.css" rel = "nofollow externo"/> <!-CSS requerido para jQuery.pagination-> <Link type = "text/css" rel = "stylesheet" href = "<%= basephin nofollow "/> <script type =" text/javascript "src =" <%= basepath%> plugins/page/js/jQuery.min.js "> </script> <!-js requerido por jQuery.pagination Tenga en cuenta que debe colocarse detrás de jQuery.js-> <script type =" text/javaScript " src = "<%= basepath%> plugins/page/js/jQuery.pagination.js"> </script> <script type = "text/javascript">/** Para operaciones de paginación, use el complemento jQuery.pagination agregado por Nicky 20170729 Start **///Página actual Var PageDex = número ($ {PageDex}); // Cantidad de datos var totalCount = número ($ {totalCount}); $ (document) .Ready (function () {// vinculante a la paginación $ ("#paginación"). Pagation (totalCount, {callback: pageselectcallback, prev_text: '<página anterior', next_text: 'siguiente página>', items_per_page: 6, num_display_entries: 6, actual_page: pageDex. "User/Queryall? obj.email; "" <TD> "+Mark+" </td> "+" <Td> "+teléfono+" </td> "+" <td> "+correo electrónico+" </td> "+" <td> "+lastlogin+" </td> "+" <td> "+loginip+" </td> "+" <td> <a a a href = 'javaScript: OpenEditDialog ("+id+");' // Este evento es la operación de la función de la función de la función (índice, jq) {}/** Pagation Operation, utilizando el complemento jQuery.pagination agregado por Nicky 20170729 End **/// Casilla de verificación All/Anti-Select var ischeckall = false; function doccheck () {if (ischeckall) {$ ("input [type = 'checkbox']"). Cada (function () {this.ecked = false;}); ischeckall = false; } else {$ ("input [type = 'CheckBox']"). Cada (function () {this.ecked = true;}); ischeckall = true; }} </script> </head> <body> <br> <div> <div> <div> <div> <form> <input type = "button" value = "send mail" onClick = "sendEmail ();" /> <input type = "button" value = "sendsms ();" /> <input type = "button" value = "exportExcel table" onClick = "exportExcel ();" /> <br> <br> <!-<input type = "text" id = "palabra clave" positer = "Por favor, ingrese la palabra clave"> fecha de <input type = "text" placeholder = "por favor ingrese la fecha de inicio" valor = "$ {startDate}" id = "startDate" name = "startDate" onclick = "wdatePicker ({dateFmt: '' yyyyyyyyyyyyyyyyyyyyyyyyyy , maxDate: '#f {$ dp. $ d (/' enddate/')}'}); "/> a <input type =" text "placeholder =" por favor ingrese la fecha de finalización "valor =" $ {enddate} "id =" endDate "name =" endDate "onClick =" wdatePicker ({dateFmt: '' yyyyyyyyyyyyyyy , Mindate: '#f {$ dp. $ d (/' startDate/')}'}); " /> <input type = "button" value = "search" onClick = "dosearch ();"/>-> </form> <table id = "mtable"> <thead> <tr> <th> <input type = "checkbox" onClick = "doccheck ();" /> </th> <th> número de serie </th> <th> Nombre de usuario </th> <th> Descripción </th> <th> móvil </th> <th> correo electrónico </th> <th> Último login </th> <th> Last login ip </th> <th> operation </th> </tr> </head> <tbody id = "content" <!-demo-> </div> </div> </div> </div> </div> </div> </div> </div> </body> </html> Pantalla de página frontal:
Ok, este blog se basa en un proyecto de código abierto de GitHub en desarrollo. La dirección del código del proyecto es: https://github.com/u014427391/Jeepatform
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.