`
simpledev
  • 浏览: 196921 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

extremecomponents补充说明

 
阅读更多
<%@ taglib uri="/WEB-INF/extremecomponents.tld" prefix="ec" %>


<ec:table 
	    items="ls" var="obj"
	    action="/PoetryAction?_method=list"
        view="compact"
		imagePath="/admin/images/table/*.gif"
		width="100%"
		rowsDisplayed="5"
		>
		<ec:exportXls fileName="poetry.xls" tooltip="Excel"/>
		<ec:exportPdf
           fileName="poetry.pdf"
           tooltip="Export PDF"
           headerColor="blue"
           headerBackgroundColor="red"
           headerTitle="Presidents"/>	
		<ec:row>	
			<ec:column property="rowcount" cell="rowCount" title="序号" sortable="false"/>
	    	<ec:column property="title" title="标题"/>
	    	<ec:column property="author" title="作者"/>
	    	<ec:column property="create_time" title="录入时间"/>
	    	<ec:column property="null1" title="添加" viewsDenied="pdf,xls">
	    		<a href="#">添加</a>
	    	</ec:column>
	    	<ec:column property="null2" title="修改" viewsDenied="pdf,xls">
	    		<a href="#">修改</a>
	    	</ec:column>
	    	<ec:column property="null3" title="删除" viewsDenied="pdf,xls">
	    		<a href="#">删除</a>
	    	</ec:column>
		</ec:row>
	</ec:table>

 

1. jar包的支持,如果需要添加导出pdf,xls,那么需要将\eXtremeComponents-1.0.1-with-dependencies\lib下面的包全部导入到工程中。

 

2.提交到servlet中,如果查询列表的方法写在doGet方法中,在ec上点击下一页或分页等操作时,出现的是空白页。

查看ec生成的源代码,javascript:document.forms.ec.ec_eti.value='';document.forms.ec.ec_p.value='2';document.forms.ec.setAttribute('action','/PoetryAction?method=list');document.forms.ec.setAttribute('method','post');document.forms.ec.submit()
可以发现请求是post方式,所以应该执行servlet中的doPost方法。(经测试:程序与ec中参数method同名没有关系

后台程序抛出的异常也可以发现:

严重: /PoetryAction?method=list:
java.lang.NullPointerException
 at com.studio502.view.action.PoetryAction.doPost(PoetryAction.java:57)

 

3.extremecomponentsEXT.jar 是扩展包。

在extremetable.properties中定义的:table.view.compact=org.extremecomponents.table.view.UserCompactView

table.view.html=org.extremecomponents.table.view.UserHtmlView

及ec标签中定义的: view="compact",否则会报类找不到异常。

 

exportPdf.userconfigLocation=/conf/userconfig.xml
exportPdf.font=Simfang

如果上面2行注释了,中文显示不出来,为#号,测试导出中文正确。

conf/userconfig.xml换成本地simfang.ttf,simfang.xml绝对路径。

(详见:extremecomponents pdf 导出中文问题分析 http://simpledev.iteye.com/blog/182944

xls导出支持中文,不会出现乱码。

 

4.代码中的冗余代码(尽管已注释)有的时候存在也是一种错。。。。。。。。。 导致xls,pdf有问题。

<!-- 
		retrieveRowsCallback="limit"
	    filterRowsCallback="limit"
	    sortRowsCallback="limit"
	    		sortable="false"
		filterable="false"
		title="后台用户管理"
		
		
		items="fzAdminUsers" var="fzAdminUser"
	    action="listFzAdminUser.do"
        view="compact" 
		imagePath="../images/table/*.gif"
		width="100%"
		rowsDisplayed="20"
		filterable="false"
		
	<ec:table 
		items="pres"
		action="/admin/test.jsp"
		imagePath="/admin/images/table/*.gif"
		title="Presidents"
		width="60%"
		rowsDisplayed="5"
		>
		<ec:row>
			<ec:column property="name"/>
			<ec:column property="nickname"/>
			<ec:column property="term"/>
		</ec:row>
	</ec:table>
	
	UserHtmlView 类在extremecomponentsEXT.jar中。
	view="compact"  更变样式,抛出的异常信息更明确。
	
	/PoetryAction?_method=list
	 -->

 

5.org.apache.fop.apps.FOPException: null:1:3868 A table row must be child of fo:table-body, fo:table-header or fo:table-footer, not fo:table-row
如果列属性1和列属性2名称相同,就会抛出上面的异常。
<@ec.row>
  <@ec.column property="属性1" />
  <@ec.column property="属性2" />
</@ec.row>

即上面的添加,修改,删除的property="null"都一样的会抛出异常。

 

6.控制添加,修改,删除这三个列不导出。viewsDenied="pdf,xls",在导出pdf,xls的时候。

默认允许viewsAllowed="pdf,xls"

 

7.导出excel,pdf功能要求在web.xml文件中:

<!-- ec Table -->
    <context-param>
         <param-name>extremecomponentsPreferencesLocation</param-name>
         <param-value>/conf/extremetable.properties</param-value>
    </context-param> 
    <filter>
       	<filter-name>eXtremeExport</filter-name>
       	<filter-class>org.extremecomponents.table.filter.ExportFilter
    	</filter-class>    
    </filter>

 以上代码放在web.xml文件的最上面。

 (详见:主题:关于extremeTable导出Excel的问题(已解决)  http://www.iteye.com/topic/107817

 

 8.extremecomponents Filter过滤时中文乱码解决方案

新建MyFilter类,实现Filter接口。

package com.studio502.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyFilter implements Filter {

	protected String encoding = null;

	protected FilterConfig filterConfig = null;

	protected boolean ignore = true;

	public void destroy() {
		this.encoding = null;
		this.filterConfig = null;
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// Conditionally select and set the character encoding to be used
		if (ignore || (request.getCharacterEncoding() == null)) {
			String encoding = selectEncoding(request);
			if (encoding != null) {
				request.setCharacterEncoding(encoding);
				System.out.println("encoding:" + encoding);
			}
		}
		// Pass control on to the next filter
		chain.doFilter(request, response);
	}

	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
		this.encoding = filterConfig.getInitParameter("encoding");
		String value = filterConfig.getInitParameter("ignore");
		if (value == null)
			this.ignore = true;
		else if (value.equalsIgnoreCase("true"))
			this.ignore = true;
		else if (value.equalsIgnoreCase("yes"))
			this.ignore = true;
		else
			this.ignore = false;
	}

	protected String selectEncoding(ServletRequest request) {
		return (this.encoding);
	}

}

 在web.xml中添加以下代码加载:

<filter>
	    <filter-name>charset</filter-name>
	    <filter-class>com.studio502.util.MyFilter</filter-class>
	    <init-param>
	      <param-name>encoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	</filter>
	<filter-mapping>
	    <filter-name>charset</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>

 就完成了,另外说明的是:以上过滤器将servlet中转码问题也解决了,以下代码就可以注释了。
title = new String(title.getBytes("ISO-8859-1"),"UTF-8");

 

分享到:
评论

相关推荐

    eXtremeComponents

    eXtremeComponents控件指南

    extremecomponents

    "extremecomponents" 是一个基于Java的组件库,它为开发者提供了丰富的用户界面(UI)组件,用于构建复杂的Web应用程序。这个库特别注重性能和可定制性,使其成为企业级应用开发的理想选择。在...

    eXtremeComponents组件

    "eXtremeComponents组件"是一组用于软件开发的组件,尤其在创建高效、功能丰富的用户界面时,这些组件能够极大地提升开发效率和用户体验。eXtremeComponents通常包括一系列的列表控件和其他UI元素,它们设计精良,...

    extremecomponents 包

    extremecomponents 包

    extremeComponents开发指南

    extremeComponents开发指南,快速掌握extremeComponents开发

    eXtremeComponents-1.0.1+中文API___分页工具

    **eXtremeComponents-1.0.1+中文API 分页工具详解** 在软件开发中,尤其是在处理大量数据时,分页功能是必不可少的。它使得用户可以更有效地浏览和管理信息,避免一次性加载过多内容导致的性能问题。本文将深入探讨...

    eXtremeComponents介绍

    **eXtremeComponents介绍** eXtremeComponents(简称EC)是一套强大的Java组件库,主要用于构建企业级的Web应用程序。它以其高效、灵活和高度可定制的特点,在开发社区中受到广泛的关注。EC旨在提高开发人员的工作...

    eXtremeComponents详解

    **eXtremeComponents详解** eXtremeComponents(简称EC)是一款专为Java开发者设计的开源组件库,它提供了一系列强大的列表展示组件,适用于构建数据密集型的应用程序。EC的核心特性包括支持分页显示、数据导出到...

    eXtremeComponents详尽文档包

    **eXtremeComponents详尽文档包** eXtremeComponents(简称EC)是一个功能强大的组件库,专门针对Java Swing应用程序设计。这个详尽的文档包是为初学者准备的,旨在帮助他们快速掌握EC组件的使用和开发技巧。通过一...

    eXtremeComponents-1.0.4.zip

    《深入理解eXtremeComponents:打造高效JSP表格展示》 在Web开发领域,高效地展示数据是一项至关重要的任务,特别是在使用Java Server Pages (JSP) 的项目中。eXtremeComponents 是一个功能强大的组件库,尤其以其...

    eXtremeComponents-1.0.3

    【eXtremeComponents-1.0.3】是一个软件组件包,它的出现是为了提供一套高效、易用的开发工具,以帮助程序员在构建应用程序时提高生产力和代码质量。这个版本1.0.3是该组件集合的一个稳定版本,用户反馈良好,表明它...

    eXtremeComponents1.0.1.jar

    eXtremeComponents1.0.1.jar

    eXtremeComponents 源代码

    【eXtremeComponents 源代码】是一个与Java编程相关的资源,主要包含有源代码和.jar包。这个开源项目提供了丰富的组件集合,为开发者在构建Java应用程序时提供了便利。eXtremeComponents的设计目标是提高开发效率,...

    extremeComponents中文文档

    在"extremeComponents中文文档"中,您将找到关于如何配置和有效利用这些组件的详细指南。 1. **组件概述** extremeComponents 包含了多种组件,如表格、树形视图、面板、对话框、菜单、表单元素等。这些组件都...

    extremeComponents源代码

    "ExtremeComponents"是一个开源项目,其源代码包含了用于构建Web应用程序的组件库。这个库主要设计用于提高开发效率,提供了一系列高效、可定制且功能丰富的Web UI组件。这些组件通常包括表格、表单、菜单、按钮等...

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

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

    eXtremeComponents-1.0.1.jar

    eXtremeComponents组件,导出Excel或pdf文件的jar包

    eXtremeComponents jar+doc+example

    "eXtremeComponents jar+doc+example" 是一个针对数据展示插件的资源包,主要包含`ECTable`的组件。这个插件是IT领域中用于数据展示的强大工具,以其出色的界面设计和丰富的功能而受到青睐。它不仅提供美观的表格...

    extremeComponents

    eXtremeComponents 的Tag 之一 eXtremeComponents 的Tag 之一

Global site tag (gtag.js) - Google Analytics