Recentemente, aprendi a Easyi e descobri que é muito útil e a interface é linda. Anote sua experiência de aprendizado aqui. Este blog escreve SSH e Easyi para implementar a exibição de paginação do DataGrid. Outras funções, como adicionar, modificar, excluir, excluir o lote etc. serão escritas uma a uma depois.
Primeiro, vamos dar uma olhada no efeito a ser alcançado: quando 5 linhas de dados são exibidas por página:
Quando 10 linhas de dados são exibidas por página, o efeito é o seguinte:
Etapas específicas:
1. Faça o download do Easyi e construa um ambiente.
2. Construa um projeto SSH, e a estrutura do diretório de todo o projeto é mostrada na figura:
3. Crie aluno da tabela no banco de dados Oracle. E insira as 6 linhas de dados a seguir. Como a operação de adição ainda não foi implementada, adicione dados à tabela de banco de dados primeiro. O valor padrão é de 5 dados por linha; portanto, insira pelo menos 6 linhas de dados para facilitar o teste de paginação.
4. Configuração do web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-sttus2 filtro-> <filtro> <name> strs> <name> strs "> <! <filter-class> org.apache.struts2.dispatcher.ng.filter.strutsprepareAndExecuteFilter </filter-Class> </filter> <filter-mapping> <filter-name> struts2 </filter-name> <url-pattern>/</url-tattern> <--filter-Mapping> <Ilvier-class-class> org.springframework.web.context.contextLoaderListener </ouvinte> </ouvinte> <!-posicionando a localização física de ApplicationContext.xml-> Param-Param> ClassPathOnConstinCoLextConxet </param-setty> ClassPathPathPathPathPathPathPathPathPathOnTeM> ClassPathPathPathPathPathPathPathPathPathPathPathOnTeM> </context-param> </braypp>
5. Configuração do ApplicationContext.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans-2.xsd http://wwwem http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd O Resource = "ApplicationContext_Bean.xml"/> <Import Resource = "ApplicationContext_DB.xml"/> </ Beans>
6. Crie a classe Model Class Student.java em com.model
pacote com.model; public class Student {String studentId; // Nome da cadeia da chave primária; // Nome string gênero; // string de gênero Age; // Age public String getStudentId () {return studentId; } public void setStudentId (String studentId) {this.studentId = StudentId; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public string getGender () {return gênero; } public void setgender (string gênero) {this.gender = gênero; } public String getage () {Age de retorno; } public void setage (idade da string) {this.age = Age; }} 7. Gere o arquivo de mapeamento correspondente Student.hbm.xml de acordo com Student.java
<? xml versão = "1.0"?> <! Doctype hibernate-mapping public "-// hibernate/hibernate mapeando dtd 3.0 // pt" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <! -> <Hibernate-mapping> <classe name = "com.model.student" table = "student"> <id name = "studentId" type = "java.lang.string"> <coluna name = "studentId" /> <generator /> < /id> <name "name =" "java.Lang.string"> type = "java.lang.string"> <name da coluna = "gênero"/> </propriedade> <propriedade name = "idade" tipo = "java.lang.string"> <name da coluna = "Age"/> </Property> </class> </hibernate-mapping>
8. Escreva interface estudantes serviços.java
pacote com.service; importar java.util.list; interface pública de interface dos alunos {list public getStudentlist (página da string, string linhas) lança exceção; // busca dados de acordo com a página e obtém dados de cada página pública int getStudentTotal () lança exceção; // estatísticas quantos dados estão lá no total} 9. Escreva a classe de implementação da interface StudentServiceImpl.java
pacote com.ServiceImpl; importar java.util.list; importar org.hibernate.sessionFactory; importar com.service.studentservice; classe pública estudantes serviços de serviço implementos de alunos {private sessionFactoryFactory; // busca dados de acordo com a página e obtenha dados para várias linhas por página Lista pública GetStudentList (página da string, String linhas) {// Atribuir valor quando é o valor padrão int currentPage = Integer.parseint ((Página == null | "0")? lista de retorno; } // estatísticas quantos dados existem no total public int getStudenttotal () lança exceção {return this.sessfactory.getCurrentSession (). Encontre ("do aluno"). Size (); } public sessionFactory getSessionFactory () {retornar sessionFactory; } public void SetSessionFactory (SessionFactory SessionFactory) {this.SessionFactory = SessionFactory; }} 10. Configure o arquivo de configuração para conectar -se ao banco de dados ApplicationContext_DB.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans-2.xsd http://wwwem http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- Defining the data source com bean-> <bean id = "DataSource" Destroy-method = "Close"> <!-Definindo o driver do banco de dados-> <propriedades name = "driverclass"> <value> oracle.jdbc.driver.oracledriver </value> </propriedade> <! <Value> JDBC: Oracle: Thin: @localhost: 1521: orcl </value> </propriedade> <!-Defina o nome de usuário do banco de dados-> <names name = "user"> <Value> lhq </value> </propriedade> <!-Definir a senha do database-> <nome> ""> senha> </senha name = "MinPoolsize"> <Value> 1 </value> </property> <propriedade name = "maxpoolsize"> <value> 40 </value> </propriedade> <propriedade name = "maxidleTime"> <value> <//value> </value> </propriedade> <nome da propriedade "adquirir"> <value> <////maiúsculas </value> </value> </propriedade> <names) </property> <propriedade name = "InitialPoolSize"> <Value> 2 </value> </ouse> name = "TestConnectionOncheckout"> <Value> false </value> </propriedade> </bean> <!-Definir Hibernate SessionFactory-> <bean id = "SessionFactory"> <!-define sessfactory deve ser injetado em DataSource-> <Nome da propriedade " <propriedade name = "hibernateProperties"> <ports> <propi key = "hibernate.dialect"> org.hibernate.dialect.oracle10gdialect </spop> </props> </propriedade> <!-define o arquivo de mapeamento para pojo <lorty> <names) </list> </propriedade> </bean> <!-Configurar a transação interceptor-> <bean id = "transactionManager"> <propriedade name = "sessionFactory" ref = "sessionFactory"/> </bean> <tx: conselhos id = "txadvice" transaction-man: " /> <!-Somente métodos começando com salvar, excluir e atualizar podem ser executados-> <tx: método name = "delete*" propagação = "requerir" /> <tx: método name = "update*" propagation = "requerir" /> <tx: name = "*" propagação "suporta" read-uly = ") /<! < /tx: conselhos> <aop: config> <aop: Pointcut id = "interceptorPointcuts" Expression = "Execution (*com.serviceImpl ..*.*(..))" /> <!-A localização do pacote que implementa a interface da classe-> <AOP: Advisor ADSCOD-REFER = "TXADVICE" </aOP: config> </ Beans>
11. Escreva Studentaction.java Tipo na camada de controle
pacote com.action; importar java.util.list; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importação.sf.json.jsonObject; importAp.Apache.Log4J.Logger; ImportCern; com.Service.StudentService; Public Class StudentAction {estático logger log = logger.getLogger (studentaction.class); Private JsonObject JsonObj; linhas de sequência privada; // Número de registros exibidos em cada página página de sequência privada; // Qual página é a atual Principal para os alunos privados Student_services; // injeção de dependência da string // consulta todas as informações do aluno public string getallstudent () lança exceção {log.info ("consulte todas as informações do aluno"); Lista Lista = Student_services.getStudentList (página, linhas); this.tobejson (list, student_services.getStudenttotal ()); retornar nulo; } // Converta para formato json public void ToBejson (lista de lista, int total) lança Exceção {httpServletResponse resposta = servletActionContext.getResponse (); HttpServletRequest request = servletActionContext.getRequest (); JsonObject jobj = new jsonObject (); // novo JON JOBJ.ACCUMULAR ("TOTAL", TOTAL); // Total representa quanta dados existe no total JobJ.acumulate ("linhas", list); // linha é os dados que representam a resposta exibida. Response.getWriter (). Write (JobJ.ToString ()); // Converta para JSON Format Log.info (jobj.toString ()); } 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 linhas) {this.rows = linhas; } public void setPage (página da string) {this.page = página; }} 12. Escreva o arquivo de configuração da injeção de dependência da primavera.
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans-2.xsd http://wwwem http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- Business Layer Service -> <bean id = "student_service"> <propriedade name = "sessionFactory"> <reference bean = "sessionfactory"> </ref> </erouse> </i bean> <!-controle da camada de controle-> <bean id = "student_action"> <nome da propriedade = "student_service> <reean)
13. Arquivo de configuração de escreva
<? xml versão = "1.0" coding = "utf-8"?> <! Doctype suporta public "-// Apache Software Foundation // DTD Struts Configuration 2.0 // en" "http://struts.apache.org/dtds/stuts-2.0.ddd"> <stuts.apache.org/dtds/Struts-2.0.ddd "> <Struts.Apache.org/dtds/stuts-2.0.ddd"> <Struts> <!-Informações do aluno-> <ação name = "getAllStudentAction" Method = "getAllStudent"> <resultado tipo = "json"> </resultado> </action> </catury> </stuts>
14. Escreva JSP ---- Index.jsp
<%@ Page Language = "Java" PageEncoding = "Utf-8" iselignored = "false"%> <%string path = request.getContextPath ();%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html> <head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> src = "<%= caminho%>/js/easyui/jQuery-1.8.0.min.js" charset = "utf-8"> </script> <!-Apresentando jQuery_easyui-> <script type = "text/javascript" src = " charset = "utf-8"> </script> <!-Apresentando jQuery_eAsyui-> <script type = "text/javascript" src = "<%= path%>/js/easyui/jQuery.easyui.min.js" charset = "utf-8"> <-script> type = "text/javascript" src = "<%= caminho%>/js/easyui/loce/easyui-lang-zh_cn.js" charset = "utf-8"> </Script> <!-introduza o texto css default/"link> <link Rel =" Stylesheet "tipo =" href = "<%= caminho%>/js/easyui/temas/default/easyui.css"/> <!-Introduce easyui pequeno ícone-> <link rel = "stylesheet" type = "text/css" href = "<%= path%>/js/js/easyui/tempes/icon.Conss" ">">/scort/tyset/tyset/icon.conss ""> " {$ ('#myDataGrid'). DataGrid ({title: 'DataGrid Instância', iconCls: 'icon-ok', largura: 600, PageSize: 5, // A página selecionada padrão, realidade, é realidade, o conjunto de dados é realidade, o conjunto de dados é realidade, o conjunto de dados que pode ser o conjunto de dados, por página, agora: Exiba automaticamente o fundo da linha. Colapsível: True, // Mostrar barra de ferramentas dobrável: "#tb", // Isso deve ser usado ao adicionar, excluir e modificar os botões URL: 'GetallStudentAction.action', // URL CHAVA O MÉTODO DE AÇÃO LOADMSG: 'Carregamento de dados ...', SingleSelect: // VERDADEIRO, você pode apenas selecionar um único FitColumns ... // SortName: 'XH', // Qual coluna é usada para classificar quando a tabela de dados é inicializada // Sortorder: 'desc', // define a ordem de classificação, que pode ser 'ASC' ou 'desc' (ordem positiva ou reversa). RemoTesort: False, Frofencolumns: [[{Field: 'CK', Caixa de seleção: true}]], Paginação: true, // Paginação ROWNumbers: True // Número da linha}); }); </script> </ad Head> <body> <h2> <b> Instância de datagrid de easyi </b> </h2> <tabela id = "myDataGrid"> <Tead> <tr> <th data-options = "campo: 'StudentId', largura: 100, alinhe: 'Centro'"> Número do aluno </th> <th Data-Options = "Campo: 'Nome', Largura: 100, Alinhe: 'Centro'"> Nome </th> <th data-options = "campo: 'gênero', largura: 100, alinhe: 'Centro'"> gênero </th> <the data-opções = "campo: 'idade', largura: 100, align: 'Centre'"> idade </// </body> </html>15. Inicie o programa e digite http: // localhost: 8080/easyui/index.jsp para teste.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.