您的位置: 新闻频道 开源新闻

原创新闻 E3.Table发布, 集成了ext grid

2008-07-15 by 见习记者 huangyh
评论(19) 有2832人浏览 e3 ajax table grid

E3.TableE3平台下一个用于构造Table视图的组件,现在这个版本的主要功能:

1.        支持ajax 翻页,排序,将传统tale切换到ajax table不需要修改任何代码,只要

做些配置即可.

2.        支持ext grid风格的表格,美观,操作方便

3.        提供排序功能,点击列名,可以实现升序或降序排列

4.        能够对大数据进行分页显示,可以设置每页记录数

5.        支持内存数据jdbc, spring jdbc 以及hibernate分页.

6.        支持表头分组

7.        能够记录翻页、排序状态,当从列表页面跳转到编辑等页面后,再跳转回来,能够自动恢复到之前的状态.

8.        支持Collection,Map,Array,EnumIterator多种数据类型

9.        支持皮肤派生的概念,也就是说要自定义皮肤不需要从头开始,只需要选择一个已有的皮肤为基础,进行些属性定义即可.注意:用户不需要懂得css那些.

演示  http://www.javae3.com/Index.jsp


来自:www.javae3.com

评论 共 19 条 发表评论

huangyh 2008-07-16 12:54 引用
ext模式的不支持. ext grid没提供这功能.
aeolus 2008-07-16 12:29 引用
请问ext模式下支持表头分组么?
因为在example里没有看到,所以在这里问问
JaNer 2008-07-16 10:16 引用
学习了,支持!
huangyh 2008-07-16 00:46 引用
演示错误解决,用了个开源xkins 采用WeakRefrence管理内存出问题,问题已经解决,谢谢!
sunwine 2008-07-15 22:20 引用
感觉作的还是太简单了些
看看这个系统,www.extract.com.cn:8800
选择ET平台演示
allen_java 2008-07-15 15:27 引用
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.apache.jasper.JasperException: net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:77)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

org.apache.jasper.JasperException: net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:431)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:210)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsException: 获取模板失败: null
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.getTemplate(VelocityTemplateProcessor.java:241)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:206)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

java.lang.NullPointerException
	net.jcreate.xkins.processor.XkinsVelocityLoader.getXkins(XkinsVelocityLoader.java:66)
	net.jcreate.xkins.processor.XkinsVelocityLoader.isSourceModified(XkinsVelocityLoader.java:35)
	org.apache.velocity.runtime.resource.Resource.isSourceModified(Resource.java:114)
	org.apache.velocity.runtime.resource.ResourceManagerImpl.refreshResource(ResourceManagerImpl.java:510)
	org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:304)
	org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831)
	org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813)
	org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:470)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.getTemplate(VelocityTemplateProcessor.java:238)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:206)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
Apache Tomcat/6.0.14

我点击欣赏,怎么出现N多类似的错误?
huangyh 2008-07-15 13:32 引用
e3的思路是.  数据模型 + 皮肤定义 (内部有主题工厂负责皮肤转换处理)-->最后产生输出。 e3 的taglib只是提供一种手段,允许用户进行数据修饰处理(如格式化日期,熟字之类的).e3后续会退出jelly形态的tag(不依赖jsp容器,这样视图不是jsp的也可以用)。 e3的思路基本上跟你说的吻合,所以e3要换grid风格会相对容易.如果可以的话,希望e3.table跟gt-grid 以后有合作的机会,咱们则重点不一样:)
另外刚发现个商业的grid, js做的,卖的还很贵,你看看,或者有些东西还值得借鉴,看起来相当不错,http://www.treegrid.com/TreeGrid5_6/Html/EJSTreeGrid.html
fins 2008-07-15 13:11 引用
谢谢 我还需努力 所有国人都应该努力 其实你这个也坚持很久了 虽然我没有用过 但是每次在这里看到有网友 贡献出自己的作品 而且是以产品的形式 很正式的贡献出来时 我总是很钦佩的.

说说技术
"e3对ext的整合思路可能跟传统的整合方式会有些不一样,虽然用了ext 的外观,但是在e3程序里ext的概念很少"

我猜想你的做法是不是 就是 用标签来生成js
而不是像其他的组件那样 在java端有一套相对复杂的组件模型(一堆类)等等?
如果是这样问题也蛮多的 如果你想听我再说说我的看法.

我有个想法(只是想法,没有验证过是否可行):
ext有一个思路就是:
我不管你后台是什么框架,后台代码怎么写, 只要你按我的要求(其实也可以进行一定的自定义 但是暂且忽略)送给我一些数据, 并且我给你的数据你能理解 那么我就给你做出列表来.

你在做后台时 是不是也可以考虑一下这个思路,只是站在数据的角度.
只要你告诉我你要什么样的数据(数据的结构), 以及能给我我要的信息(分页信息等), 那么我就给你准备出数据来.

数据如何渲染 交给一个纯前台的东西来搞定.
当然 你可以实现一个默认的前台, 也可以使用其他已经存在的前台(如ext gt等)
而且 这个前台如何实现 , 是标签 还是js 你也不关心
当然 你的默认实现可以是 标签.

以上只是我的想法 也许你的E3 table就是这么设计的 那就算我多嘴了
如果我这种想法你也有过 并且实践证明行不通 也欢迎你来和我做更进一步的交流.
huangyh 2008-07-15 13:10 引用
fins,建议先收下了,谢了:)  改天有空研究下gt-grid
huangyh 2008-07-15 13:01 引用
"扬长避短 , 发扬特色与创新" 才是王道. 呵呵,没错,e3扬的就是后台,前端的东西我们不做,(自己也不会),所以整合了ext grid(以后可能会整合其他的).e3对ext的整合思路可能跟传统的整合方式会有些不一样,虽然用了ext 的外观,但是在e3程序里ext的概念很少。 都是做列表的,gt-grid要赞一下,前端东西写成这样,真不容易:)
fins 2008-07-15 12:48 引用
都是做列表的 特来支持一下
E3 table 跟我之前做的那个 ecside比较类似吧?

我感觉作者的强项在java , 页面部分就...

建议作者扬长避短 加强后台, 因为在后台可作的事情还是很多的 例如导出 图表 更强大的统计等.

我个人建议 实在没必要在整合EXT-GRID上花功夫
这类用java的方式来开发ext的东西 已经太多了 效果并不好.

"扬长避短 , 发扬特色与创新" 才是王道.
wingware 2008-07-15 12:30 引用
...
wingware 2008-07-15 12:30 引用
superxielei 2008-07-15 12:24 引用
太慢了。继续关注!
huangyh 2008-07-15 12:21 引用
不过以后还是要想办法,给整出来,后续版本会提供yui datatable的支持,那个小很多.功能也很强
huangyh 2008-07-15 12:20 引用
ext的grid之前用ext提供的工具build出来就报错了,所以就没分解出来。ext压缩下100来K,不是很大
guoshiguan 2008-07-15 11:53 引用
把整个EXT都包都进来了,不能轻量级点吗,
jessdy 2008-07-15 10:15 引用
还很稚嫩,Table这块异常多多,随便点点就是异常
flyfan 2008-07-15 09:25 引用
很好很强大,支持了

发表评论

您还没有登录,请登录后发表评论