`
何足道
  • 浏览: 33212 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

smartGWT, OSGi export to excel and PDF

阅读更多

刚给公司一个web项目添加了前台export表格到excel以及pdf的功能,下面把实现过程记录在这篇blog中。

一些背景交待:

1、UI技术使用的是smartgwt,MVP模式,表格ListGrid使用的是DataSource

2、整个项目基于OSGi,下面提到的ExportService接口和ExportServiceImpl类不在同一个OSGi bundle中,原因是ExportService需要向几乎所有bundle开放,所以放到了common的bundle中。

 

第一步,写一个ExportForm

 


注意:exportButton.setStartRow(false);是必要的,因为smartgwt中有些控件,比如Button,默认会另起一行,不管setNumCol(int)设置为多大。
第二步,把这个form控件加到合适的地方。(省略ExportService接口, ExportServiceImpl类, 以及Export单例类的实现,有些代码下面有引用到)
第三步,在ListGrid所在的View对应的Presenter中添加exportButton的ClickHandler处理。当用户点击这个按钮,Presenter就会new一次DataSource(因为export需要export所有的数据,而ListGrid的display只需要一页的数据,所以不能直接从ListGrid export),设置好所有的参数,然后fetch data。将response.getData(), ListGrid.getFields(), 用户选择export的format, 以及fileName传给ExportService.第四步,注册ExportService, ExportServiceImpl之间的servlet mapping。先把ExportService注册到一个service path上,有两种方法:1、使用@RemoteServiceRelativePath()这个annotation什么是RemoteServiceRelativePath annotation?

这样注册之后,每当前台call这个Export,就会找一个GWT.getModuleBaseURL() + value()的url,即http://....../发出申请的gwt project的名称/export。上面笔者提到这个service是被share的,任何一个gwt project都会call到这个service,因此需要使用第二种注册方法。


2、使用((ServiceDefTarget) exportService).setServiceEntryPoint("/.../export");这样注册之后,每当前台call这个Export,都会使用固定的URL。
接下来在ExportServiceImpl所在的项目的plugin.xml中注册export service的implementation。



第五步,在ExportServiceImpl中使用java.io实现到Excel的输出,使用itextpdf实现到PDF的输出。


 

关于itextpdf的使用,这里有一个很好的tutorial blog

 

 




















  


  
分享到:
评论

相关推荐

    smartgwt官方实例

    SmartGWT是一个强大的Java框架,用于构建富互联网应用程序(RIA)。这个官方实例是学习和理解SmartGWT功能和用法的宝贵资源,尤其适合自学者。"Showcase"通常指的是一个展示各种组件、特性和功能的集合,让我们深入...

    SmartGwt学习文档

    SmartGwt是一款强大的Java库,专门用于构建富互联网应用程序(RIA,Rich Internet Applications)。它基于Google的GWT(Google Web Toolkit)框架,并扩展了其功能,提供了丰富的UI组件和更高级的客户端性能优化。...

    SmartGWT2.0 API

    SmartGWT 2.0 API 是一款基于Google Web Toolkit (GWT) 2.0的高级组件库,它为开发者提供了丰富的用户界面组件和强大的功能,以构建高性能、交互式的Web应用程序。SmartGWT 2.0 在其前身的基础上进行了多方面的改进...

    smartgwt-1.3

    SmartGWT是一个强大的Java库,专门用于构建富互联网应用程序(RIA)。这个名为"smartgwt-1.3"的压缩包文件很可能包含了SmartGWT框架的1.3版本的源代码、库文件和其他相关资源。SmartGWT是基于Google Web Toolkit ...

    基于Maven的SmartGWT项目示例

    本示例项目“基于Maven的SmartGWT项目”就是这样的一个实践,它结合了两个强大的技术:Maven作为项目管理和构建工具,以及SmartGWT作为前端UI框架。下面我们将深入探讨这两个技术以及它们如何协同工作。 首先,...

    smartGWT 3.1 最新版本

    SmartGWT 3.1 是一个先进的Java框架,专门用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。这个最新版本提供了丰富的功能和组件,旨在帮助开发者高效地开发出交互性强、用户体验优秀的Web应用。...

    smartGWT最新zip

    SmartGWT是一个强大的Java库,专门用于构建富互联网应用程序(RIA)。它基于Google Web Toolkit (GWT) 平台,并提供了丰富的用户界面组件和优化工具,使得开发人员能够轻松创建功能丰富的、交互性强的Web应用。GWT...

    SmartGWT 12.0

    SmartGWT 12.0 是一款强大的Java框架,专为构建富互联网应用程序(Rich Internet Applications,RIAs)而设计。这个最新版本提供了一系列增强的功能和优化,旨在提高开发效率和用户体验。SmartGWT库的核心在于它将...

    smartgwt2.4最新发布

    《SmartGWT 2.4:新一代Web应用开发利器》 SmartGWT 2.4是GWT(Google Web Toolkit)框架的一个强大扩展,它提供了一系列先进的组件和工具,为开发人员构建富互联网应用程序(RIA)提供了极大的便利。这次发布的...

    smartgwt2.4 最新发布

    SmartGWT 2.4 是一个强大的开源框架,主要用于构建企业级的富互联网应用程序(Rich Internet Applications,简称RIA)。这个框架基于Google Web Toolkit (GWT) 并且扩展了其功能,提供了丰富的组件库和高级特性,...

    smartGwt学习笔记

    在SmartGWT的学习和开发过程中,经常会遇到各种挑战和问题,比如本文提到的“分页问题GridPager”。SmartGwt是一个强大的Java库,用于构建基于Web的用户界面,它提供了丰富的组件,包括ListGrid,一个功能强大的表格...

    SmartGWT 入门 SmartGWT 入门

    SmartGWT 入门SmartGWT 入门SmartGWT 入门SmartGWT 入门SmartGWT 入门

    smartgwt5.0

    SmartGWT 是封装了 SmartClient 的 GWT API。而 SmartClient 是一个开源的企业级 Ajax 开发框架。 Google Web Toolkit 的发布,大大降低了 Java 开发人员进行 Web 开发的门槛。然而 GWT 本身提供的控件及功能相对...

    smartgwt + spring + hibernate

    SmartGWT + Spring + Hibernate 是一个常见的企业级应用开发组合,它们各自在Web应用程序开发中扮演着重要角色。SmartGWT是基于GWT(Google Web Toolkit)的一个强大的UI库,提供丰富的用户界面组件和高性能的...

    smartGWT

    "SmartGWT"是一个强大的Java库,用于构建企业级的Web应用程序。它基于Google Web Toolkit (GWT) 并提供了一系列高级组件和功能,旨在简化开发过程,提高开发效率。SmartGWT尤其适合那些需要创建数据密集型、交互性强...

    smart GWT 3.1

    SmartGWT 是封装了 SmartClient 的 GWT API。SmartGWT 有如下特色: 丰富的控件。很多较为复杂的常用界面都被包装成简单易用的控件。比如可 编辑的树形表格、查询常用的过滤器创建器和类似 Google Calendar 的日历...

    SmartGwt 之原生 Desktop(与gxt无关)

    《SmartGwt 原生 Desktop 深度解析》 SmartGwt 是一款基于 Java 的开源库,它为开发人员提供了丰富的组件和工具,用于构建高性能、富交互式的 Web 应用程序。在 SmartGwt 中,原生的 Desktop 功能是一个强大的特性...

    smartgwt 培训ppt

    有关于smartgwt 开发的ppt,高级开发的应用。

    smartgwt-2.0API.CHM

    smartgwt-2.0API.CHM 2009年12月18日 ... SmartGWT 2.0发布下载了

    smartgwt最新版本GWT的DEMO

    SmartGWT是基于Google Web Toolkit (GWT) 的一个开源框架,它为开发富互联网应用程序(RIA)提供了丰富的组件库和高级功能。SmartGWT的最新版本进一步提升了用户体验,简化了开发过程,提供了更多现代Web设计的需求...

Global site tag (gtag.js) - Google Analytics