`
zyh1126
  • 浏览: 4601 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

GWT显示列表

阅读更多
CRUDService.java:


package client;

import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.core.client.GWT;

public interface CRUDService extends RemoteService {
     Student[] getStudent(String PageNum)     ;

    String getPagenum();

    public static class App {
        private static CRUDServiceAsync ourInstance = null;

        public static synchronized CRUDServiceAsync getInstance() {
            if (ourInstance == null) {
                ourInstance = (CRUDServiceAsync) GWT.create(CRUDService.class);
                ((ServiceDefTarget) ourInstance).setServiceEntryPoint(GWT.getModuleBaseURL() + "CRUD/CRUDService");
            }
            return ourInstance;
        }
    }
}



CRUDServiceImpl.java:


package server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import client.CRUDService;
import client.Student;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.cfg.Configuration;
import java.util.List;
import java.util.Iterator;

public class CRUDServiceImpl extends RemoteServiceServlet  implements CRUDService {
    private static final SessionFactory sessionFactory;
    String Pagenum = "1";
    static {
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }

        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }

    public List ListStudent(String PageNum){
       Session session =  getSessionFactory().getCurrentSession() ;
        session.beginTransaction();
         Query query = session.createSQLQuery("select * from t_student")
        .addScalar("id", Hibernate.LONG)
        .addScalar("name", Hibernate.STRING)
        .addScalar("email", Hibernate.STRING);
        int PageSize = 10;

        try{
            if (Integer.parseInt(PageNum)!=0 | PageNum!=null ){
            query.setFirstResult((Integer.parseInt(PageNum)-1) * PageSize);
            query.setMaxResults(PageSize);
            }else{
            query.setFirstResult(0);
            query.setMaxResults(PageSize);
            }
        }catch(Exception e){
            query.setFirstResult(0);
            query.setMaxResults(PageSize);
        }
        List ls = query.list();
        session.getTransaction().commit();
        return ls;
    }

    public int CountStudent(){
       Session session =  getSessionFactory().getCurrentSession() ;
        session.beginTransaction();
         List ls = session.createSQLQuery("select count(*) from t_student").list();
        session.getTransaction().commit();
        return Integer.parseInt(ls.iterator().next().toString());
    }

        public Student[] getStudent(String PageNum){
             this.setPagenum(PageNum);
             Student[] student = new Student[this.CountStudent()];
            int i = 0;
          for(Iterator it = this.ListStudent(PageNum).iterator();it.hasNext();i++) {
             Object[] ob = (Object[] )it.next();
                student[i]=new Student(ob[0].toString(),ob[1].toString(),ob[2].toString());
              
          }

             return student;
          }

     public void setPagenum(String pagenum){
         this.Pagenum = pagenum;
     }

    public String getPagenum() {
        return Pagenum;  //To change body of implemented methods use File | Settings | File Templates.
    }

}


CRUDServiceAsync.java :


package client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface CRUDServiceAsync {

    void getStudent(String PageNum, AsyncCallback async);

    void getPagenum(AsyncCallback async);
}



CRUD.java :


package client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class CRUD implements EntryPoint {
    private CRUDServiceAsync  crudServiceAsync ;
    VerticalPanel main = new VerticalPanel();
    FlexTable lb = new FlexTable();
    HorizontalPanel hp = new HorizontalPanel();
    Button nextpage = new Button("nextpage");
    Button prepage = new Button("prepage");
    private String pagenum = "1";

    public void setPagenum(String pagenum){
        this.pagenum=pagenum;
    }
    public String getPagenum(){
        return this.pagenum;
    }
    int  prepagenum = 1;
    int  nextpagenum =1;

    public void onModuleLoad() {
        main.add(lb);
        main.add(hp);
        hp.add(prepage);
        hp.add(nextpage);
        RootPanel.get().add(main);
        showstudentlist("1");

       prepage.addClickListener(new ClickListener(){
       public void onClick (Widget sender){
       prepagenum = Integer.parseInt(getPagenum())-1;
       showstudentlist(String.valueOf(prepagenum));
       }
     });

     nextpage.addClickListener(new ClickListener(){
      public void onClick (Widget sender){
       nextpagenum = Integer.parseInt(getPagenum())+1 ;
     showstudentlist(String.valueOf(nextpagenum));
      }
      });

    }

     private void  showstudentlist(String pagenum) {
         CRUDService.App.getInstance().getStudent(pagenum,new AsyncCallback(){
                  public void onFailure(Throwable caught) {
                  }
                  public void onSuccess(Object result) {
                    Student s[] = ( Student[])result ;
                      for (int i=0;i<=s.length;i++){
                          lb.setText(i,0,s[i].id);
                          lb.setText(i,1,s[i].name);
                          lb.setText(i,2,s[i].email);
                      }
                  }
              });

        CRUDService.App.getInstance().getPagenum(new AsyncCallback(){
            public void onFailure(Throwable caught) {}
            public void onSuccess(Object result) {
                   setPagenum((String)result);
            }
        });

    }

}


0
0
分享到:
评论

相关推荐

    GWT DEMO 增删改查

    总的来说,这个DEMO将演示如何使用GWT和SmartGWT实现一个基本的数据管理界面,包括创建新的记录,查看列表,编辑选定记录以及删除记录。通过学习和理解这个DEMO,初学者能够快速掌握GWT中的CRUD操作,并为以后的项目...

    eclipse 3.7 安装 gwt

    5. **确认安装内容**:在下一个界面中,系统会显示你即将安装的插件列表及其描述,确认无误后继续点击“下一步”。 6. **阅读并接受许可协议**:接下来的界面将展示插件的许可协议,仔细阅读后勾选“I accept the ...

    gwt 之dualListField (drag and drop)

    GWT的DualListField控件通常由两个并排的ListBox组成,用户可以将一个列表中的选项通过拖放的方式移动到另一个列表,以实现数据的双向转移。这种交互方式直观且易于理解,提高了用户的操作效率。 首先,我们来探讨...

    GWT例子中的分页研究.

    这通常涉及到一个列表视图(如`CellList`或`DataGrid`),它可以绑定到数据源,并自动处理数据的加载和显示。 6. **事件处理**:当用户点击分页按钮时,触发相应的事件处理器,调用服务接口获取新的数据,并更新...

    gwt + gxt jar包

    在【压缩包子文件的文件名称列表】中,"gwt+gxt"可能表示的是包含GWT和GXT库的JAR文件,例如GWT的gwt-user.jar、gwt-dev.jar以及GXT的gxt.jar、gxt-theme-neptune.jar等。这些JAR文件通常需要添加到项目的类路径中,...

    GWT开源项目pdune

    通过以上分析,pdune项目是一个使用GWT开发的开源项目,专注于表格显示和处理,具有完整的项目结构和文档,包括许可证信息、开发指南、版本记录以及构建自动化。它不仅提供了丰富的功能,还鼓励社区参与和贡献,是...

    GWT-Events.pdf

    3. **列表框和相关控件**:用于显示多个选项供用户选择,与之相关的事件有`ItemChangedEvent`和`ItemChangedHandler`。 4. **文本框和相关控件**:用于接收用户的文本输入,与之相关的事件包括`KeyboardEvent`和`...

    使用gwt实现的一个模式框

    关于【压缩包子文件的文件名称列表】:EduCourseware,这可能是与教育课程相关的资源或项目名称。如果这个模式框是用于在线教育平台,那么它可能被用来显示课程信息、提示消息、评分表单等,从而增强学习体验。 ...

    org.liveSense.sample.gwt.notes-1.0.5.zip

    【描述】"org.liveSense.sample.gwt.notes.zip,livesense gwt rpc samplelivesense gwt示例" 显示这个项目主要功能是展示 GWT RPC 的用法。LiveSense 是一个可能的开源框架或工具集,而 "sample.gwt.notes" 指出这是...

    GWT-EXT 多表头插件GroupHeaderPlugin

    2. `GroupHeaderItem.java` - 这可能是表示多级表头的类,用于存储和管理每个表头的属性,如文本、大小、对齐方式等,并可能包含了如何构建和显示这些表头的方法。 3. `extjs_ux_GroupHeaderGrid_GroupHeaderPlugin_...

    common-widgets-gwt:gwt 小部件库

    5. **ListBox**:下拉列表,可以用于选项选择。 6. **Panel**:布局容器,如FlowPanel、DockPanel、VerticalPanel和HorizontalPanel,用于组织其他小部件。 **GWT的事件处理和数据绑定** GWT支持事件驱动编程,通过...

    org.jresearch.commons.gwt.utils.shared-1.0.45.zip

    版本号"1.0.45"显示这是该库的第45次更新。 描述中提到的"iteratee.zip,猫的CoreIteratees"暗示了项目可能包含对迭代器(Iteratee)的实现,这是一种函数式编程中的概念。在函数式编程中,迭代器是一种处理数据流的...

    GWT Super Dev Button-crx插件

    -“模块”下拉列表显示指定代码服务器上的所有可用模块-按“编译”按钮时,将记住“代码服务器url”-更改“代码服务器” URL模块时将重新加载请注意:您可能需要重新安装扩展程序,以使热键工作$ IF,如果您发现错误...

    GAE-GWT-data-store-app:WebApp将数据保存到GAE数据存储中。 该应用是使用GWT创建的。 您可以注册。 注册后,电子邮件将发送到您的电子邮件地址。 您可以输入一些信息,这些信息将显示在单元格列表中。 如果您按此单元格,则该应用程序将带您到下一页,您也可以在其中输入一些数据。 该应用程序由列表组成,您可以将其加深到五个级别

    至于压缩包子文件的文件名称列表"GAE-GWT-data-store-app-master",这通常表示这是该项目的主分支或源码仓库。"master"通常指的是Git版本控制系统中的主分支,包含了项目最新的、未经分支分叉的代码。 综上所述,这...

    gwt-saas-contacts:具有GWT的Cloud Appengine联系人

    尽管GWT允许用Java编写前端代码,但最终产品会包含HTML,因为这是浏览器理解和显示网页的标准语言。HTML可能会被用作页面布局和内容结构的基本框架。 在【压缩包子文件的文件名称列表】"gwt-saas-contacts-master...

    grid-gwt-custom-theme:带有 GWT 2.7 和自定义 Valo 主题的 Vaadin Grid

    【压缩包子文件的文件名称列表】"grid-gwt-custom-theme-master"暗示这是项目的主分支,通常包含项目的源代码、资源文件、配置文件以及README等文档。 在这个项目中,我们可能会涉及以下知识点: 1. **GWT (Google...

    moment-gwt:用于MomentJs的JsInterop包装器

    9. **国际化支持**:Moment.js支持多语言,"moment-gwt"可能也提供相应的接口,使开发者可以轻松实现Web应用的日期和时间显示的国际化。 10. **测试与调试**:学习如何测试使用"moment-gwt"编写的代码,以及在GWT的...

    GWT超级Dev按钮「GWT Super Dev Button」-crx插件

    -“模块”下拉列表显示指定代码服务器上的所有可用模块-按“编译”按钮时,将记住“代码服务器url”-更改“代码服务器” URL模块时将重新加载请注意:您可能需要重新安装扩展程序,以使热键工作$ IF,如果您发现错误...

Global site tag (gtag.js) - Google Analytics