Ich habe kürzlich Easyi gelernt und festgestellt, dass es sehr nützlich ist und die Benutzeroberfläche wunderschön ist. Schreiben Sie hier Ihre Lernerfahrung auf. Dieser Blog schreibt SSH und Easyi, um die Paginierungsanzeige von DataGrid zu implementieren. Andere Funktionen wie Hinzufügen, Ändern, Löschen, Stapellosen usw. werden nacheinander nacheinander geschrieben.
Schauen wir uns zunächst einen Blick auf den zu erreichen: Wenn 5 Datenzeilen pro Seite angezeigt werden:
Wenn pro Seite 10 Datenzeilen angezeigt werden, ist der Effekt wie folgt:
Spezifische Schritte:
1. Laden Sie Easyi herunter und erstellen Sie eine Umgebung.
2. Erstellen Sie ein SSH -Projekt, und die Verzeichnisstruktur des gesamten Projekts ist in der Abbildung dargestellt:
3. Erstellen Sie den Tabellenstudenten in der Oracle -Datenbank. Und geben Sie die folgenden 6 Datenreihen ein. Da der Additionsvorgang noch nicht implementiert wurde, fügen Sie zuerst Daten zur Datenbanktabelle hinzu. Der Standardwert beträgt 5 Daten pro Zeile. Geben Sie daher mindestens 6 Datenzeilen ein, um Paging -Tests zu erleichtern.
4. Web.xml -Konfiguration
<? xsi: scheMalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <! <Filterklasse> org.apache.struts2.dispatcher.ng.filter.strutsprepareAndexecuteFilter </Filter-Klasse> </filter> <Filter-Mapping> <Filter-name> Struts2 </filter-name> <Url-pult>/*</url-puffer> </filter-mapping> </url-puffer> <Hörer-Klasse> org.springFramework.web.context.contextloaderListener </Listener-Klasse> </Listener> <!-Positionierung der physischen Position von applicationContext.xml-> <Context-Param> <param-name> contextconfigLocation </param-vAm-VALUUE> application> applicationConteCon.xml </param-value> applypathe: </context-param> </web-App>
5. Konfiguration von ApplicationContext.xml
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa XSI: ScheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context-2.xsd http://www.springFramework.org/schema/aop http://www.springframework.org/Schema/aop/aPring-aop-2.-- http://www.springframework.org/schema/aop/spring-aop-2.5sd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/sping-tx-tx-2.5.5.5.5.5. Resource = "ApplicationContext_bean.xml"/> <import ressourcen = "applicationContext_db.xml"/> </beans>
6. Erstellen Sie die Modellklasse student.java in com.model
Paket com.model; öffentliche Klasse Student {String studentID; // Primärschlüssel -Zeichenfolge Name; // Name String Geschlecht; // Geschlechtszeichenfolge Alter; // Alter public String getStudentid () {return studentId; } public void setStudentID (String studentID) {this.studentid = studentId; } public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getGerTer () {Return Gender; } public void setGender (String -Geschlecht) {this.gender = Gender; } public String getage () {Return Age; } public void Setage (String Age) {this.age = Age; }} 7. Generieren Sie die entsprechende Mapping -Datei student.hbm.xml nach student.java
<? 3.4.0.CR1-> <Hibernate-Mapping> <class name = "com.model.student" table = "student"> <id name = "studentID" type = "java.lang.String"> <Spaltenname = "studentid" /> <generator /< /id> <Eigenschaft name ". name = "Geschlecht" type = "java.lang.String"> <Spaltenname = "Geschlecht"/> </Eigenschaft> <Eigenschaft name = "Alter" type = "java.lang.String"> <Spaltenname = "Alter"/> </class> </class> </hibernate-mapping>
8. Schreiben Sie die Schnittstelle studentservice.java
Paket com.service; import java.util.list; public interface studentService {public list getStudentList (String -Seite, String -Zeilen) löst Ausnahme aus; // Daten nach der Seite abrufen und Daten von jeder Seite abrufen public int getStudentTotal () Ausnahme; // Statistiken, wie viele Daten insgesamt sind}}}}}} 9. Schreiben Sie die Schnittstellen -Implementierungsklasse studentserviceImpl.java
Paket com.serviceImpl; import Java.util.List; import org.hibernate.sessionFactory; import Com.service // Daten gemäß der Seite abrufen und Daten für mehrere Zeilen pro Seite öffentliche Liste GetStudentList (String -Seite, String -Zeilen) {// Wert zuweisen, wenn es sich um den Standardwert int CurrentPage = Integer.ParseInT ((page == null ||) handelt. "0")? Rückgabeliste; } // Statistiken, inwieweit Daten in der gesamten öffentlichen Int getStudentTotal () Ausnahme ausgelöst {return this } public SessionFactory getSessionFactory () {return SessionFactory; } public void setSessionFactory (SessionFactory SessionFactory) {this.SessionFactory = sessionFactory; }} 10. Konfigurieren Sie die Konfigurationsdatei für eine Verbindung zum Datenbank applicationContext_db.xml
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa XSI: ScheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context-2.xsd http://www.springFramework.org/schema/aop http://www.springframework.org/Schema/aop/aPring-aop-2.-- http://www.springframework.org/schema/aop/spring-aop-2.5sd http://www.springFramework.org/schema/tx http://www.springframework.org/schema/tx/sping-tx/sping-tx-tx-tx-tx-tx-tx-tx-tx-tx-tx-tx-tx-2.5.5.5.1! bean-> <bean id = "dataSource" destroy-method = "close"> <!-Definieren des Datenbanktreibers-> <Eigenschaftsname = "DriverClass"> <wert> oracle.jdbc.driver.oracledriver </value> </property> <!-Definieren des Datenbank-Urls-> <Eigenschaftsname = "JDBCURL"> <wert> jdbc: oracle: dünn: @LocalHost: 1521: orcl </value> </property> <! <value>1</value> </property> <property name="maxPoolSize"> <value>40</value> </property> <property name="maxIdleTime"> <value>1800</value> </property> <property name="acquireIncrement"> <value>2</value> </property> <property name="maxStatements"> <value>0</value> </property> <property name = "initialpoolSize"> <wert> 2 </value> </property> <Eigenschaft name = "idleConnectionTestPeriod"> <wert> 1800 </value> </property> <Eigenschaft name = "accountireretryattemptivs"> <value> 30 </value> </property> <Eigentum> </property> </property = " name = "testconnectionOneCheckout"> <Wichtig> Falsch </value> </property> </bean> <!-Definieren Sie Hibernate SessionFactory-> <bean id = "sessionFactory"> <!-Define SessionFactory MUSS INDATEKTIERT IN DATAUSPEKTIEREN-> <Eigentum name = "dataSource"> <redaNSource ". SessionFactory-Eigenschaft-> <Eigenschaft name = "hibernateProperties"> <props> <prop key = "hibernate.dialect"> org.hibernate.dialect.oracle10Gdialect </prop> </props> </Property> <!-Die Mapping-Datei für Pojo-> < <value>com/model/Student.hbm.xml</value> </list> </property> </bean> <!-- Configure transaction interceptor--> <bean id="transactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /><!-- Only methods starting with save, delete, and update can be performed--> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="*" propagation="SUPPORTS" read-only="true" /><!-- Other methods are read-only Methoden-> </tx: Attribute> </tx: Ratschläge> <AOP: config> <AOP: pointcut id = "interceptorpointcuts" Expression = "Ausführung (*com.serviceImpl ..*. pointcut-ref = "interceptorPointCuts"/> </aoP: config> </beans>
11. Schreiben Sie studentaction.java -Typ in der Steuerungsschicht
Paket com.Action; import Java.util.list; import Javax.servlet.http.httpServletRequest; import Javax.servlet.http.httpServletRespect; importieren net.sf.json.jsonObject; com.service.studentService; öffentliche Klasse studentAction {static Logger log = logger.getLogger (studentAction.class); Privat JsonObject JsonObj; private Zeichenfolgezeilen; // Anzahl der auf jeder Seite angezeigten Aufzeichnungen private Zeichenfolge. Listlist = student_services.getStudentList (Seite, Zeilen); this.tobejson (Liste, student_services.getstudenttotal ()); null zurückkehren; } // In JSON -Format public void tobejson (Listliste, int Total) ausgelöst {httpServletResponse Antwort HttpServletRequest request = servletActionContext.getRequest (); JsonObject jobj = new jsonObject (); // new a json jobj.accumulate ("Gesamt", insgesamt); // Gesamt gibt insgesamt Daten dar, wie viele Daten in Total Jobj.accumulate ("Zeilen", Liste); // Zeile die Daten darstellen, die die angezeigte Seitenantwort darstellen. response.getWriter (). Write (Jobj.toString ()); // in JSON Format log.info (job.toString ()) konvertieren; } public studentService getStudent_services () {return student_services; } public void setStudent_services (studentservice student_services) {this.student_services = student_services; } public void setjsonObj (jsonObject jsonObj) {this.jsonObj = jsonObj; } public void setRows (String -Zeilen) {this.rows = Zeilen; } public void setPage (String -Seite) {this.page = Seite; }} 12. Schreiben Sie Spring's Dependenty Injection ApplicationContext_Bean.xml Konfigurationsdatei
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa XSI: ScheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context-2.xsd http://www.springFramework.org/schema/aop http://www.springframework.org/Schema/aop/aPring-aop-2.-- http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springFramework.org/schema/tx http://www.springframework.org/schema/tx/sping-tx/sping-tx-tx-2.5.5.1! <bean id = "student_service"> <Eigenschaft name = "sessionfactory"> <ref bean = "sessionfactory"> </ref> </property> </bean> <!-Kontrollschichtaktion-> <bean id = "student_action"> <Property name = "student_service"> <refan = "student_Service"/</> </> </> </> </> </> </> </bohne> </bohne
13. Schreiben Sie Struts.xml -Konfigurationsdatei
<? Schülerinformationen-> <Action name = "getAllstudentAction" methode = "getAllstudent"> <result type = "json"> </result> </action> </package> </struts>
14. Schreiben Sie JSP ---- INDEX.JSP
<%@ page Language = "Java" pageCoding = "utf-8" iseligned = "false"%> <%String path = request.getContextPath ();%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! docType html public "-//////////////////////////////////////////////////////////////////////ldd. htm. "http://www.w3.org/tr/html4/loose.dtd"><html><Head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <titels> number number box </title> <! src = "<%= path%>/js/easyui/jQuery-1.8.0.min.js" charset = "utf-8"> </script> <!-Einführung jQuery_easyui-> <script type = "text/javaScript" src = "<%= patherui/js/js/js/js/js/easyui/jquery. charset = "utf-8"> </script> <!-Einführung jquery_easyui-> <script type = "text/javaScript" src = "<%= path%>/js/easyui/jQuery.asyui.min.js" charset = "utf-8"> </script> <! src = "<%= path%>/js/easyui/locale/easyui-lang-zh_cn.js" charset = "utf-8"> </script> <!-EasyUi Standard-CSS-Format einführen-Blau-> <link rel = "stylesHeet" Typ = "Text/CSS" "Text/CSS" " href = "<%= path%>/js/easyui/Themen/Standard/easyui.css"/> <!-Easyui kleines Icon einführen-> <link rel = "stylesheet" Typ = "text/css" href = "<%= path%>/js/easyui/icon.con.css"/icon.css "/$" $ "$.cons"/$ "> $" $.csS "/$" $ "$.css"/$ "$" $ "$" $ "$" $.csS "/$"> $ "$" $.css "/$" $ "$.csS"/$ "$" $ "$". $ ('#mydatagrid'). datagrid ({title: 'datagrid instance', iconcls: 'icon-ok', width: 600, pageSize: 5, // Die Standard-ausgewählte Seite ist 5 Zeilen von Daten pro Seite pro Seite pagelist: [5, 10, 15, 20], // Die Paging-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set-Set, //. Zeigen Sie automatisch den Zeilenhintergrund an. Collabsible: true, // faltbare Schaltflächen -Symbolleiste: "#tb", // Dies sollte beim Hinzufügen, Löschen und Ändern von Schaltflächen verwendet werden: 'GetAllstudentAction.Action', // URL -Aufruf -Action -Methode Loadmsg: 'Datenladen ...', SingleSelect: True //, wenn es nur zu einem Einstieg ausgewählt wird. // sortName: 'xh', // mit welcher Spalte wird zum Sortieren verwendet, wenn die Datentabelle initialisiert wird // SortOrder: 'Desc', // die Sortierreihenfolge definieren, die 'ASC' oder 'Desc' (positive oder umgekehrte Reihenfolge) sein kann. remoteSort: false, frozecolumns: [[{field: 'CK', Kontrollkästchen: true}]], Pagination: true, // Pagination Rownumbers: true // Zeilennummer}); }); </script> </head><body> <h2> <b> DataGrid instance of easyi</b> </h2> <table id="mydatagrid"> <thead> <tr> <th data-options="field:'studentid',width:100,align:'center'">Student number</th> <th data-options="field:'name',width:100,align:'center'">name</th> <th data-options="field:'gender',width:100,align:'center'">Gender</th> <th data-options="field:'age',width:100,align:'center'">Age</th> </tr> </tead> </table> </body> </html>15. Starten Sie das Programm und geben Sie http: // localhost: 8080/easyui/index.jsp zum Testen ein.
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.