[2007-0428]列表组件ECSide 2.0 beta1公布 !

[2007-0428]列表组件ECSide 2.0 beta1发布 !!!!
EC Side介绍:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: fins ( name: Wei Zijun  ,  email:fins@163.com  , blog:http://fins.iteye.com  )

EC Side是一个开源的列表组件。
他源自著名开源列表组件 eXtremeComponents (http://www.extremecomponents.org),
但现在已经脱离eXtremeComponents,独立发展(仍有部分代码来自 eXtremeComponents)。
“做最实用易用的列表组件”是ECSide的目标。

ECSide发布地址:
2.0:
ECSide圈子: 
http://ecside.group.iteye.com/

作者blog:
http://fins.iteye.com/


===============================
2007-04-27
ECSide 2.00 beta 1发布
===============================
终于决定把2.0拿出来献丑了.
beta版本还没有很好的例子和文档(这话从1.0就开始说了 呵呵)
主要新特性-----太多了,未来的几天我再圈子的论坛里慢慢补充吧
明天就要结束漫长的出差之旅(半年啊 :'( )了,直接杀向上海了,祝我好运吧

这次只提供了3个简单的例子

一个传统列表的例子,这里的传统是相对新版本的ecside生成的列表所说的.
可以简单的理解为,静态的整体table(表头和表体在一个table内,没有内部滚动条的特性)
大家可以查看生成的html代码,与demo.jsp对比一下更好理解.
democlassic.jsp

一个通常的例子(大多数情况下,也许您只需要使用这些功能)
demo.jsp

功能比较多的一个例子,几乎涵盖了所有主要特性
demofull.jsp


下一步的计划比较简单:
1 完善打印功能
2 继续加强脚本语言的应用范围,简化使用方式
3 修改bug
4 写说明文档 呵呵 文档 终于要有了
5 回答大家的问题.


25 楼 shim 2007-04-28  
还有一个地方,在我这好像不行。
就是在标题上右键的过滤功能。
在demofull.jsp中的用户名上右键过滤框中输入test_5,点击查询。
结果没反应。不知道大家的是不是也这样
26 楼 shim 2007-04-28  
建议一个改进的地方
日期的过滤能否设计成两个输入框,从****-**-**到****-**-**来过滤
27 楼 Arden 2007-04-28  
这分页怎么是把所有的记录都查出来啊,这不是会很慢?
28 楼 ll_2046 2007-04-28  
fins,支持你!你能在空闲时间来搞ECSide,已经很不容易了,而且还搞的有声有色,我会一直关注你的,关注ECSide!祝你成功!
29 楼 stonejian 2007-04-29  
想问问,为什么我申请加入了圈子,并收到了自动回复消息,但是还是不能下载共享里面的依赖包呢?
30 楼 fins 2007-04-29  
谢谢大家的支持
我现在在上海了呵呵
关于分页的问题:

其实是支持两种分页的 一种是例子中的分页 适合数据量不大的情况
另一种是数据库分页 数据库分野的例子1.3版里有
这个beta版本 没有提供更多的例子 主要是我打算把例子好好规划一下
做些更有代表性的例子.
更多更好的例子 会在下一版提供
当然,如果您有一定的经验,完全可以照着1.3的例子写出数据库分野的代码来

关于文档:
文档是一定要用WIKI的,但是没想好是等JAVAEYE的WIKI还是用GOOGLE CODE的.

关于新版本和BUG
我现在在上海 没有可编程的环境 可能暂时修改不了 但是有的BUG也许还是可以凭空分析出原因的 如果可以 我一定会在论坛解答的
(但是建议大家去圈子的论坛)

关于圈子
所有的人的申请我都会通过 但是圈子的认证系统好象有BUG,很多时候通过了也不行 这个我也很郁闷 :'(


最后再次谢谢大家的关注和支持

31 楼 qqeerr20012001 2007-04-29  
支持一下
32 楼 sinbo 2007-04-30  
哥们你太牛了,我没有白等!
33 楼 sinbo 2007-04-30  
呵呵,你的努力大家都是看到的,谢谢!
34 楼 sfc991224 2007-04-30  
强烈支持[2007-0428]列表组件ECSide 2.0 beta1公布 !
35 楼 fins 2007-04-30  
刚才突然发现下载量居然达到了2000多 呵呵
真是太谢谢的家的支持了[2007-0428]列表组件ECSide 2.0 beta1公布 !
这几天我会利用闲暇时间开始写文档的.
暂时想先写一些标签和属性的说明
以及一些简单的ECSIDE的工作方式.

不知道这样的内容是否是大家目前最需要的
36 楼 leondu 2007-04-30  
fins 写道
刚才突然发现下载量居然达到了2000多 呵呵
真是太谢谢的家的支持了[2007-0428]列表组件ECSide 2.0 beta1公布 !
这几天我会利用闲暇时间开始写文档的.
暂时想先写一些标签和属性的说明
以及一些简单的ECSIDE的工作方式.

不知道这样的内容是否是大家目前最需要的


我想还是参照bufflo或者dwr,写一个1分钟之内把ecside跑起来的例子,然后再做一个例子演示下在当前流行的SSH框架如何使用ecside,至于“标签和属性的说明”,这个倒可以慢慢来。

一家之言,呵呵。
37 楼 fins 2007-04-30  
好主意 谢谢 你的建议[2007-0428]列表组件ECSide 2.0 beta1公布 !
38 楼 lonelyfatboy 2007-04-30  
[2007-0428]列表组件ECSide 2.0 beta1公布 ! ,终于出现了!
等了很久!!
39 楼 fins 2007-05-01  
我的博客里发表了一篇 ecside的入门文章.
未来几天会陆续晚上它,需要的朋友可以去读一下


http://fins.iteye.com/blog/76413 
40 楼 keete 2007-05-04  
看了DEMO,非常棒。俺要的就是这个。
41 楼 shim 2007-05-05  
fins 写道

关于分页的问题:

其实是支持两种分页的 一种是例子中的分页 适合数据量不大的情况
另一种是数据库分页 数据库分野的例子1.3版里有
这个beta版本 没有提供更多的例子 主要是我打算把例子好好规划一下
做些更有代表性的例子.
更多更好的例子 会在下一版提供
当然,如果您有一定的经验,完全可以照着1.3的例子写出数据库分野的代码来



我按照1.3版本的Action中的做法,
Action如下:


public ActionForward doQuery(ActionMapping mapping, ActionForm form,
	HttpServletRequest request, HttpServletResponse response)
	throws Exception {
		
		UserInfoDAO userInfoDAO=(UserInfoDAO)getBean("userInfoDAO");
		Enumeration enumer=request.getParameterNames();
		while(enumer.hasMoreElements()){
			String enumStr=(String)enumer.nextElement();
			System.out.println("=======name======:"+enumStr);
			System.out.println("=======name======:"+request.getParameter(enumStr));
		}
		int totalRows = RequestUtil.getTotalRowsFromRequest(request);
		if (totalRows < 0) {
			// TODO �� userInfoDAO.getAllUserInfoNumber()Ϊ�ܹ�ȡ��������ķ��������滻Ϊʵ�ʵ�ʵ�֡�
			totalRows = userInfoDAO.getAllUserInfoNumber();
		}
		// ȡ�õ�ǰҪ��ѯ��ҳ��ļ�¼��ֹ�кš�
		// Ҳ����ʹ�� getRowStartEnd(HttpServletRequest request, int totalRows,int defautPageSize,int offset)
		// ����������0��ʼ�������� ����ķ�������ָ���Ӽ���ʼ ORACLE��ݿ�һ���Ǵ�1��ʼ��,HSQLDB�Ǵ�0��ʼ.
		int[] rowStartEnd = RequestUtil.getRowStartEnd(request, totalRows,DEFAULT_PAGE_SIZE);

		// TODO ��  userInfoDAO.getAllUserInfo(rowStartEnd[0], rowStartEnd[1])
		// Ϊ��ѯ��¼�ķ��������滻Ϊʵ�ʵ�ʵ�֡�rowStartEnd[0], rowStartEnd[1]Ϊ��ֹ��
		// rowStartEnd[0], rowStartEnd[1] ��� �ҿ�
		List rslist = userInfoDAO.getSomeUserInfo(rowStartEnd[0], rowStartEnd[1]);

		
		request.setAttribute("recordList", rslist);
		
		request.setAttribute("GENDER_MAP", CommonDictionary.GENDER);
		request.setAttribute("USERROLE_MAP", CommonDictionary.USERROLE);
		
		return mapping.findForward("listPage");

	}

可在页面还是出现分页不正确的现象,
我跟踪进去看了一下,在RequestUtil类的
public static Limit getLimit(HttpServletRequest request, String cTableId,
			int totalRows, int defaultPageSize) {

		。。。。。。。。。。。。。。。。。。。。。。

		limit.setRowAttributes(totalRows, defaultPageSize);

		request.setAttribute(ECSideConstants.TABLEID_KEY, tableId);
		tableId = tableId == null ? "" : tableId + "_";
		request.setAttribute(tableId + TableConstants.TOTAL_ROWS, new Integer(
				totalRows));
		
		return limit;
	}

此处limit.setRowAttributes(totalRows, defaultPageSize);时值是正确的。
但在DefaultHtmlView类的init方法内我打印出Limit里的信息时结果不正确
(页面分页是由model里的Limit里的TotalRows的值决定的)
public void init(TableModel model){
     Limit limit=model.getLimit();
    	System.out.println("=====TotalRows=:"+limit.getTotalRows());
}


请fins帮一下忙。谢谢先!
42 楼 fishinlove 2007-05-05  
牛人啊.!![2007-0428]列表组件ECSide 2.0 beta1公布 !
43 楼 zyhalj 2007-05-06  
太好了,你的工作简直可以用完美来形容
44 楼 robbin 2007-05-06  
更多讨论可以到ECSide圈子:

http://ecside.group.iteye.com/