efa's blog

以用户角度出发,你就已经成功一半了.

导航

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿(18)

我参与的团队

随笔分类

随笔档案

文章分类

文章档案

Bi report

dba

info security

other

perl

php

python

tech blogs

tech websites

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

[ec] extreme Table 版本跟进发布区

说明
extreme Table 是个很不错的table tag,打算记录底它的版本发布 change Log :)


它的RoadMap :
http://extremecomponents.org/extremesite/public/roadMap.jsp
以往本BLOG介绍: http://www.blogjava.net/davidxu/archive/2005/08/09/9683.aspx



我们从这里开始:

[1.0.0-M2-A2]
1.0.0-M2-A2 - by 官方
  • Able to mix the ColumnTag and the ColumnsTag. Will need to use the method
    model.getColumnHandler().addAutoGenerateColumn(column);
  • Every attribute of every tag will accept an EL Expression
  • Will accept a Set for the collection now


部分使用说明 --by david xu

1  table 新增加var属性,支持定义bean name (可选择),可以不用${collectionName.memberName}这样难以理解的语法.
    用官方的话就是
    "Added TableTag var attribute. Used (optionally) as the name of the variable to hold the current bean. "
  

<ec:table
    collection
="humanList"
    action
="${pageContext.request.contextPath}/index.jsp"
    imagePath
="${pageContext.request.contextPath}/images/table/*.gif"
    cellpadding
="1"
    saveFilterSort
="true"
    var
="human"
    title
="我的第一个tag table">
ec:table>
$
{human.name} 取得



[1.0.1-M2]
1.0.1-M2 release  by 官方

1. Things that changed and need to be aware of:

  • The ColumnTag exportable attribute has been removed
    • Replaced with the viewsAllowed and the viewsDenied attributes (see items 3 and 4)
  • Changed Cell interface
    • new interface ->public void init(BaseModel model, Column column);
    • Matches the View interface for consistency
    • The rowcount is part of the new Row bean. Can retrieve the rowcount by doing a model.getRowHandler().getRow().getRowCount()
  • Changed View interface
    • new interface -> public void body(BaseModel model, Column column);
    • Matches the Cell interface for consistency
    • Can get the column position by doing column.isFirstColumn() and column.isLastColumn()
  • New TableTag attributes to replace the deprecated collection attribute
    • The collection attribute has been deprecated in favor of three new attributes. The attributes are call tableId, items, and var
    • Read the full discussion for more information
  • Moved the element back on the Cell for the FilterCell.
    • If you modified the HtmlView, and specifically the filter row, then remove the element in the View.

2. New RowTag with cooresponding Row Bean

  • Able to do row level javascript onmouseover, onmouseout, and onclick
  • Ability to do row level highlighting. See stylesheet change (below) for proper formating.
  • Moved the stylesheet class attribute from the column () to the row ()

3. New ColumnTag attribute viewsAllowed

  • Can specify whether the column should be used for the current view. The views include html, pdf, xls, csv, plus any custom views.
  • If you specify a given view (or views), then only that view (or views) will use the column
  • For example you can specify viewsAllowed="pdf" which will use the column for the PDF export, but not any other export or default html View
  • Replaces the ColumnTag exportable attribute

4. New ColumnTag attribute viewsDenied

  • Can specify whether the column should not be used for the current view. The views include html, pdf, xls, csv, plus any custom views
  • If you specify a given view (or views), then only that view (or views) will not use the column
  • For example you can specify viewsDenied="html" which will not use the column for the html View, but will for all the exports
  • Replaces the ColumnTag exportable attribute

5. Enhancements

  • Every attribute of every tag will accept an EL Expression
  • Will accept a Set for the collection now
  • Confirmed to work with a RowSetDynaClass (if send as List)
  • Able to mix the ColumnTag and the ColumnsTag. Will need to use the method model.getColumnHandler().addAutoGenerateColumn(column);
  • Improved the default stylesheet
    • My initial intentions were to just change the stylesheet to work with the row highlighting, but I ended up tweaking it enough that now it just works better. For instance if you have some filters turned off then it seamlessly flows with the statusbar because it no longer uses cellspacing. If you use the new stylesheet be sure to remove the table.cellspacing=2 from your extremecomponents.properties file.

6. Bugs Fixed

  • Fixed Rows Displayed bug
    • The Rows Displayed was not working correctly with the Show All under certain conditions
    • Can set the median and max values in the extremecomponents.properties. The default values are table.medianRowsDisplayed=50 and table.maxRowsDisplayed=100, respectively

部分使用说明 --by david xu
1、TableTag 的改动
      collection attribute
不再赞成使用,可以使用tableId, items, and var 取而代之

<ec:table 
    items
="customerList"
        tableId
="customer"
        var
="customer"
    title
="customerList"
        …………

>
…………
ec:table>


2、ColumnTag 新属性的用法viewAllowed,viewsDenied
      支持view包括:
html, pdf, xls, csv以及自定的view

     viewsAllowed="pdf"    //说明:只允许在pdf view 中
      viewsAllowed="html,xls" //也可以用,分隔

3、 Cell interface 的改动
       通过model.getRowHandler().getRow().getRowCount() 返回 rowcount
4、新增RowTag 
    
<ec:row highlightRow="true" onclick="alert('david')" >
   
<ec:column/>
   
<ec:column/>
   
<ec:column/>
   …………
ec:row>

5、set ,RowSetDynaClass 的支持
<%
    List customerList 
= new ArrayList();
    LazyDynaBean temp 
= new LazyDynaBean();
    temp.set(
"code""001");
    temp.set(
"name""david xu");
    customerList.add(temp);
    request.setAttribute(
"customerList", customerList); 
%>

   …………
  …………


6、Totalling Columns
<ec:table
        totalTitle
="合计"
>      
   
<ec:column property="salary" showTotal="true"/>
ec:table>



New and Noteworthy 1.0.1-M3

This build represents a massive refacoring of the handler code and includes a new limit package. I believe the state of the code is the best it has ever been and in general has really gone to a new level. This was initially sparked by a refactoring of the Pagination (now Limit) and Rows Displayed features but then trickled down into the handler code and also resulted in a new Limit and LimitFactory.

Be sure to give yourself time to move to this release as you will need to fix your custom cells and views. I had to move some classes to different packages as things changed internally. The changes will make working with the eXtremeTable much easier and were unavoidable.

1. Things that changed and need to be aware of:

  • The Show All is no longer an option in the Rows Displayed droplist. It was confusing as the median and max rows would sometimes appear and sometimes go away. It was way to buggy also...you could filter the rows, select show all, and the hit clear. At that point you would display all the rows.
  • The BaseModel moved from the base package to the core package as there is no base package left.
  • The Limit, CollectionOfBeans, CurrentCollectionBean moved to the BaseModel.
  • org.extremecomponents.table.base.ModelUtils --> (moved) org.extremecomponents.table.core.ExportFilterUtils
  • The TableTag attribute rowsDisplayed="0" no longer has any meaning. If you would like to show all the rows then remove the pagination with the TableTag attribute showPagination="false". The reason for the change is because the rows displayed was reworked and the meaning dropped. Also, I could tell from code examples that many people were confused by the attribute and its meaning as both the showPagination="false" and rowsDisplayed="0" were used together. I would prefer one clear way to display all the rows.

2. Limit and LimitFactory

Basically you just build a Limit object and it self populates with everything that you need to figure out the sorting, filtering, rowStart, rowEnd, page, currentRows and totalRows. You used to have to deal with Strings and Maps versus now you work with simple intuitive objects and ints. I also use the Limit object internally with a different factory.

This is all you have to do:

 Limit limit = LimitFactory.createInstanceOfLimit(request, tableId);
 LimitFactory.setLimitFilterAndSortAttr(limit);

 //once you know the total rows
 LimitFactory.setLimitPageAndRowAttr(limit, DEFAULT_ROWS_DISPLAYED, totalRows);

The example demonstrates how to work in a Controller (Spring) or Action (Struts).

Then in your JSP set the callbacks to point to the LimitCallback.

<ec:table 
      retrieveRowsCallback="org.extremecomponents.table.callback.LimitCallback"
      filterRowsCallback="org.extremecomponents.table.callback.LimitCallback"
      sortRowsCallback="org.extremecomponents.table.callback.LimitCallback"
      ...
  >

3. Enhancements

  • If you hard coded in any of the filter parameters then be sure to look at the TableContants class to see how they changed. The URL is more of a code than something you can read now.

4. Bugs Fixed

  • Fixed the FOP errors messages associated with the PDF Export View.
  • If the filter is invoked with no filter criteria the table no longer tries to match empty results. The effect before was the table would show no results, and now just remains the same.
  • Removed org.extremecomponents.table.tag.TableTagExtraInfo

posted on 2005-08-27 15:09 一凡@ITO 阅读(8945) 评论(20)  编辑  收藏

评论

# re: [ec] extreme Table 版本跟进发布区 2005-08-28 19:31 江南白衣@ITO

太好了,不知道把这个版本整合进来要多久。

  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-08-28 19:32 江南白衣@ITO

动态设置列的功能也很有用,期待9.19

Dynamically Hide/Show columns

Using Javascript to give the ability to hide and show columns on the fly.   回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-08-28 19:34 江南白衣@ITO

设置每个列在哪种媒体中显示的列也很有用。
ColumnTag can take an optional "media" attribute. This can be "html", or "pdf", etc.

因为LH项目需要在html管理界面中只显示一部分主要的列,详细的列点"编辑"再看。
而在excel中则需要显示所有列  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-08-28 19:35 江南白衣@ITO

The RowTag The attributes will include style, styleClass, onmouseover, onmouseout and onclick.

这个功能也太好了,我们又可以省掉一些扩展。大家都需要设置自己的动态效果的,EC想得真周到。  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-11-06 15:59 jiniboy

能像asp.net的datagird吗  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-11-08 14:12 xuruchao

导出pdf和xml时,抛出Exception:如下
Error 500--Internal Server Error
javax.servlet.jsp.JspException: TableTag Problem: java.lang.NullPointerException
at org.extremecomponents.table.handler.ColumnHandler.isViewAllowed(ColumnHandler.java:130)
at org.extremecomponents.table.handler.ColumnHandler.addColumn(ColumnHandler.java:53)
at org.extremecomponents.table.tag.ColumnTag.doEndTag(ColumnTag.java:429)
有谁知道是什么原因!

  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-11-10 11:43 DavidXu

to xuruchao
就这几句好难看出问题吧.
可能是版本,配置文件的问题吧.

isViewAllowed ??
你用的什么版本?有升级过不?  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-11-10 16:26 xuruchao

谢谢你的回答,导出pdf和xml时,抛出Exception的问题我已经解决了(没有加编码Filter的问题),现在有另外一个问题,pdf导出是#,不知道是什么原因,在网上查了一下,问题依旧没有解决!有谁能够解决,不胜感激!  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2005-11-10 16:28 Davidxu

你上网搜索一下有关 fop 的文章介绍,挺多的.
这主要是没有注册到中文字体问题.另从tomcat的console 可以观察fop解释情况.
  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-01-22 13:42 探索者

我不能从sourceforge下载,为什么,谁有,传一个给我。yrlong@163.com  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-01-23 13:51 David xu

最近我也上不了sourceforge,应该会修复的.再等会吧:)  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-05 18:08 Ivan Chen

下载是完全没有问题的,最新的extreme table下载地址:
http://puzzle.dl.sourceforge.net/sourceforge/extremecomp/eXtremeComponents-1.0.1-M4-with-dependencies.zip

最近都是开着tor过活了,sigh……  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-10 19:31 SqUaLL

extreme table 有没有 id 属性,我搞了半天没有搞出来  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-12 08:55 davidxu

tableId,详细你可以看看tld文件  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-12 12:01 SqUaLL

tableId 没有用啊,生成的 html 还是没有 id 属性  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-14 10:03 davidxu

设置tableId会为form
增加id属性,你可以试一下.
<form id="">
</form>
  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-15 08:56 SqUaLL

这个我知道,我还是改了源码,ec:table加了个id属性  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-02-15 15:51 study

我也碰到 导出pdf和xml时,抛出Exception:如下
Error 500--Internal Server Error
javax.servlet.jsp.JspException: TableTag Problem: java.lang.NullPointerException
at org.extremecomponents.table.handler.ColumnHandler.isViewAllowed(ColumnHandler.java:130)
at org.extremecomponents.table.handler.ColumnHandler.addColumn(ColumnHandler.java:53)
at org.extremecomponents.table.tag.ColumnTag.doEndTag(ColumnTag.java:429) 的问题
我在web.xml配了
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还是出现同样的问题,请指教noboyanyone123@sohu.com
  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2006-08-01 23:12 liushl

请问为什么我的extremetable 国际化总是不行?
我用的是Spring框架
web.xml
配置如下
<context-param>
<param-name>extremecomponentsMessagesLocation</param-name>
<param-value>/WEB-INF/i18n/messages</param-value>
</context-param>

spring 中也有如下片断
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/i18n/messages</value>
<value>/WEB-INF/i18n/Error_messages</value>
</list>
</property>
</bean>

但是运行时,总是报下面的错:
Can't find bundle for base name /WEB-INF/i18n/messages, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:727)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:700)
at org.extremecomponents.table.resource.TableResourceBundle.findResourceBundle(TableResourceBundle.java:55)
at org.extremecomponents.table.resource.TableResourceBundle.init(TableResourceBundle.java:49)
at org.extremecomponents.table.core.TableModelImpl.<init>(TableModelImpl.java:82)
at org.extremecomponents.table.tag.TableTag.doStartTag(TableTag.java:400)
at org.apache.jsp.WEB_002dINF.jsp.listUser_jsp._jspx_meth_ec_table_0(listUser_jsp.java:525)
at org.apache.jsp.WEB_002dINF.jsp.listUser_jsp._jspService(listUser_jsp.java:150)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



我的文件肯定在对的位置 因为单纯的jstl国际化已经在同一叶面成功
但是<ec:table 标签里的资源总是报错
请问这是什么问题呢?
  回复  更多评论   

# re: [ec] extreme Table 版本跟进发布区 2007-01-11 16:11 highboy

郁闷呀,sourceforge上不去呀,谁有et的depend jar,给我发一份吧。谢谢
bogaoyi@126.com  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: