`

Jmesa示例[分页,排序,导出CSV,EXCEL,PDF]

    博客分类:
  • J2EE
阅读更多
一 参考资料

1   http://blog.csdn.net/prufeng/archive/2009/05/24/4213218.aspx
2   http://blog.csdn.net/fenglibing/archive/2009/04/24/4106564.aspx
3   http://fansofjava.iteye.com/category/86946
4   http://blog.csdn.net/jockCreate/archive/2008/02/20/2110310.aspx

二 环境:XP+Myeclipse6.6+JDK1.5+Tomcat6.20

1 jmesa官方网址:  http://code.google.com/p/jmesa/
2 所需要的jar文件有:见附件图片:jmesa-lib.jpg


3 示例Java代码

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jmesa.facade.TableFacade;
import org.jmesa.facade.TableFacadeFactory;
import org.jmesa.limit.ExportType;

public class ExportServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		
		doPost(request,response);
	}

	@SuppressWarnings("deprecation")
	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		
		
		TableFacade tableFacade = TableFacadeFactory.createTableFacade("presidents", request);
		tableFacade.setColumnProperties("id","name.firstName", "name.lastName", "term","career", "born");       
        tableFacade.setItems(new PresidentDao().getPresidents());
        tableFacade.setExportTypes(response, ExportType.CSV, ExportType.EXCEL, ExportType.PDF);
        //直接展现方式
        String html = tableFacade.render();			
		request.setAttribute("presidents", html);
		String tag = request.getParameter("tag");
		String url = "/index.jsp";
		if("2".equals(tag)){
			url = "/index-el.jsp";
		}		
		
		try {   
			RequestDispatcher rd = request.getRequestDispatcher(url);   			
		    rd.forward(request, response);   
		    return;   
		}catch(Exception e){
			/**
			 * 不加上异常处理在控制台报如下错误:
			 *  严重: Servlet.service() for servlet ExportServlet threw exception
				java.lang.IllegalStateException: Cannot forward after response has been committed
					at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312)
					at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
					at demo.ExportServlet.doPost(ExportServlet.java:55)
					at demo.ExportServlet.doGet(ExportServlet.java:36)
					at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
					at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
					at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
					at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
					at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
					at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
					at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
					at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
					at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
					at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
					at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
					at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
					at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
					at java.lang.Thread.run(Thread.java:619)
			 * */
		}  
		
	}
}


4 页面代码

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>	
		<title>我的第一个jmesa测试示例</title>	
		<link rel="STYLESHEET" type="text/css" href="css/jmesa.css" />
		<link rel="STYLESHEET" type="text/css" href="css/jmesa-pdf.css" />
		<script type="text/javascript" src="js/jquery-1.3.min.js" /></script>
		<script type="text/javascript" src="js/jmesa.js" /></script>
		<script type="text/javascript" src="js/jquery.jmesa.js" /></script>		
		<script type="text/javascript">
			function onInvokeAction(id) {
			    setExportToLimit(id, '');
			    createHiddenInputFieldsForLimitAndSubmit(id);
			}
			function onInvokeExportAction(id) {       
			    var parameterString = createParameterStringForLimit(id);  			   
			    location.href = "<%= request.getContextPath() %>/ExportServlet?" + parameterString;       
			}   
			
		</script>
</head>
<body>
<form name="personForm" action="<%= request.getContextPath() %>/ExportServlet" method="post">
<table  border="0" align="center" cellpadding="0" cellspacing="0">
<tr><td  align="center" width="100%">${presidents}</td></tr>
</table>	
</form>
</body>
</html>

5 显示效果见附件:jmesa-demo.jpg
6 示例工程见:MyJmesa.rar
  • 大小: 15.4 KB
  • 大小: 57.3 KB
分享到:
评论

相关推荐

    bootstrap table导出表格支持中文csv、pdf、txt等

    最后,关于压缩包子文件的文件名称"ExportPDF_ch",这可能是一个示例或者已导出的PDF文件,其中“ch”可能代表“Chinese”,意味着这个PDF文件包含了中文内容。用户可以通过这样的文件来验证导出功能是否正常工作,...

    DataTables导出CVS Excel PDF

    在DataTables中,导出CSV是通过内置的`buttons`扩展实现的。这个扩展提供了“导出”按钮,点击后会将表格数据转换成CSV文件,用户可以保存到本地。CSV格式的数据通常用逗号分隔,但在不同的地区或应用中,分隔符可能...

    使用jasperreports制作报表(导出pdf excel html)

    4. **导出报表**:`JasperExportManager.exportReportToPdfFile()`, `JasperExportManager.exportReportToHtmlFile()` 和 `JasperExportManager.exportReportToXlsFile()` 分别用于导出报表为PDF、HTML和Excel格式。...

    JQuery DataTables示例,包含分页、拖拽、导出

    3. **导出**:DataTables 支持导出数据为CSV, Excel, PDF 或其他格式,方便用户进一步分析或保存数据。这个示例包含了导出功能,意味着用户可以轻松地将表格数据导出至所需的格式。 4. **Struts2框架**:项目基于...

    阿里EasyExcel导出案例

    阿里EasyExcel是一款由阿里巴巴开发的轻量级Java库,专门用于处理Excel文件,尤其是数据的导入和导出。它的设计目标是低内存消耗、高效性能和简单易用。在这个"阿里EasyExcel导出案例"中,我们将深入探讨如何利用...

    Grid导出到Excel例子(源码+注释)

    在本示例中,我们将探讨如何将Grid的数据导出到Excel格式,这对于数据分析、报告生成和数据共享非常实用。源码与注释的提供使得学习过程更加直观和高效。 首先,我们要了解Grid组件。Grid通常由ExtJS库提供,它是一...

    easyui datagrid 导出到excel

    在IT领域,EasyUI Datagrid是一款基于jQuery的前端数据展示组件,它提供了丰富的表格功能,如排序、分页、过滤等。"EasyUI Datagrid 导出到Excel"这一主题涉及的是如何将EasyUI Datagrid中的数据显示在Excel表格中,...

    jqgrid 导出成为 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG,PDF格式

    它提供了丰富的功能,包括数据网格、排序、过滤、编辑、分页等,并且支持多种数据格式的导入和导出。在本场景中,我们将探讨如何使用 jqGrid 导出数据到 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG, PDF 等...

    EXTJS Grid导出Excel

    EXTJS Grid提供了多种方法来导出数据,包括CSV、PDF和Excel格式。在本实例中,我们将重点讨论导出到Excel的实现,后端采用C#语言,运行在.NET平台上。C#可以生成Excel文件,通过HTTP响应返回给EXTJS前端,从而实现在...

    aspose.cellsC#按模版导出Excel实例

    这个“aspose.cellsC#按模版导出Excel实例”是一个示例项目,它演示了如何使用C#编程语言结合Aspose.Cells库来根据预先设定的模板导出数据到Excel文件。这种功能在报表生成、数据分析和自动化办公流程中非常常见。 ...

    ExtJS4.0 分享Grid导出Excel插件(3.28更新支持4.1)

    它支持分页、排序、过滤、编辑等功能。 2. **数据绑定**: ExtJS Grid与数据源之间的双向绑定机制,使得数据在Grid和后台之间实时同步。 3. **插件架构**: 了解如何在ExtJS中集成和使用插件,包括加载、初始化和配置...

    Ext grid 导出Excel

    Ext Grid允许用户筛选、排序、分页以及编辑数据,是企业级应用中常用的数据展示工具。 在Ext JS中,导出数据到Excel通常通过以下步骤实现: 1. **获取数据**:首先,你需要从Ext Grid中获取显示的所有数据。这可以...

    jquery导出excel

    - `jquery.export`:另一个类似的插件,支持导出HTML表格到Excel、CSV、PDF等多种格式。 5. **注意事项** - 考虑兼容性:不同的浏览器对文件下载的支持程度不同,需要确保代码在主流浏览器上都能正常工作。 - ...

    eXtremeTable分页控件完整例子(数据分页+数据导出)

    在这个完整的例子中,我们将会深入探讨如何利用eXtremeTable实现数据的分页以及多种格式的数据导出功能,如Excel、PDF和文本文件。 首先,数据分页是大型Web应用中常见的需求,用于优化用户体验,避免一次性加载...

    eXtremeComponents控件分页导出数据Demo.rar

    《eXtremeComponents控件分页导出数据Demo详解》 在软件开发过程中,高效的数据展示和管理是至关重要的。eXtremeComponents控件系列以其强大的功能和灵活的定制性,在.NET平台上赢得了广大开发者的一致好评。尤其是...

    C#中GridView导出Excel

    GridView控件提供了多种特性,如分页、排序、筛选等,使得它在Web应用中非常实用。当需要导出数据时,我们通常会利用服务器端的方法来实现,因为这可以避免客户端浏览器的兼容性问题。下面将详细介绍如何在C#中实现...

    DBGrid DBGridEh排序/导出/统计

    其次,导出功能是将数据从DBGridEh导出到各种文件格式的过程,如CSV、Excel、PDF等。这在需要共享数据或进行离线分析时非常有用。DBGridEh通常会提供API或事件,使得开发者可以轻松地将表格数据转换并保存为这些格式...

    gridview导出Excel表格数据

    `GridView`提供了分页、排序、筛选等多种功能,极大地方便了数据的管理和显示。 #### 2. 导出至Excel的基本原理 导出至Excel的过程实质上是将`GridView`中的数据转换为Excel兼容的格式,并通过HTTP响应发送给...

    EXTJS grid导出EXCEL文件

    2. **数据导出**:在EXTJS中,数据导出功能通常涉及到将Grid中的数据显示在其他格式,如CSV、PDF或Excel中。这通常是通过编写自定义插件或者扩展Grid的功能来实现的。 3. **EXTJS 3.2.0**:这是EXTJS的一个特定版本...

Global site tag (gtag.js) - Google Analytics