我使用ECSide和原版EC遇到的问题以及解决方法

问题:ECSide2.0与Struts2结合,userAjax不能设置为true,否则出现“正在提交...”,然后就没有动静了。
解决:找到Me.findAjaxZoneAtClient,将false改为true

问题:ECSide2的图片,放在了一个名为gird的目录下,这个似乎是作者的笔误。
解决:修改css中的URL,将gird改为grid.

问题:ECSide在IE下表头和内容不能对齐。
解决:去掉jsp中<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

问题:ECSide与dojo等其他js框架一起使用,其他框架的拖动等操作失效。
解决:将ecside中document.onmousemove = ECSideUtil.DoResize;
            document.onmouseup = ECSideUtil.EndResize;
      改为:ECSideUtil_addEvent(document, "mousemove", ECSideUtil.DoResize);
            ECSideUtil_addEvent(document, "mouseup", ECSideUtil.EndResize);
问题:原版EC使用Hibenrate导出Excel时,如果数据量大,则会内存溢出。这个问题是EC导出数据的时候,将pageSize设置为最大造成的,ECSide估计也有类似的问题。这个时候Hibnerate的query查询会装载所有数据,所以就溢出了。并且原版ec使用POI,也容易造成溢出。

解决:重新写XlsView,使用jxl实现导出。截获Hibernate执行hql或criteria,将这两个对象存入request,然后使用scroll方式执行,每next一下,生成一行数据并且定期的执行session.clear()。这样hibnerate就不会溢出了,但是,jxl还是会溢出,不过调整内存可以在一定程度上解决这个问题。终极解决方案是分段导出,然后使用流的方式合并,不过需要研究diff格式,比较麻烦。 :(

你可能感兴趣的:(Hibernate,IE,Excel,JSF,dojo)