`
王牌海盗
  • 浏览: 237044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在纯struts下使用ECSide的一点疑惑

阅读更多

知道ECSide有段时间了,但一直都没尝试使用。最近在尝试使用,但发现一个很不解的疑问。在用ECSide进行翻页,排序等操作试,action会被多次执行。action里调用DAO从取LIST的方法也被执行。这样每操作一次(翻页,或排序等),action就被执行一次,List也被从新取了一次,导致响应很慢。

JSP里的代码

xml 代码
  1. <link rel="stylesheet" type="text/css" href="<%=webapp%>/ecside/css/ecside_style.css" />  
  2. <script type="text/javascript" src="<%=webapp%>/ecside/js/prototype_mini.js" ></script>  
  3. <script type="text/javascript" src="<%=webapp%>/ecside/js/ecside_msg_utf8_cn.js"></script>  
  4. <script type="text/javascript" src="<%=webapp%>/ecside/js/ecside.js" ></script>  
  5. </head>  
  6. <body>  
  7.  <ec:table items="users" var="user" retrieveRowsCallback="process"  
  8.      sortable="true" action="${pageContext.request.contextPath}/ShowUserList.do"  
  9.     rowsDisplayed="5" title="任务信息" width="80%" pageSizeList="2,5,10,50">  
  10.   <ec:row>  
  11.    <ec:column width="20" property="_0" title="序号" value="${GLOBALROWCOUNT}"/>  
  12.    <ec:column width="150" property="userid" title="用户ID" />  
  13.    <ec:column width="150" property="realname" title="用户姓名"/>  
  14.    <ec:column width="150" property="dwid" title="单位ID"/>               
  15.    </ec:row>  
  16.   </ec:table>  

(我试着将ec:table 里的action属性设为显示该列表的JSP页面“userlist.jsp”,这样的话第一次打开页面是正常的,一但对列表经行任何错作,翻页,排序等,列表就变空了,右下脚纪录信息栏显示无任何纪录)

action里的主要代码

java 代码
  1. public ActionForward ShowUserkList(ActionMapping mapping, ActionForm form,   
  2.     HttpServletRequest request, HttpServletResponse response) {   
  3.     List userlist = new UserDAO().findAllUser();   
  4.     request.setAttribute("users", userlist);   
  5.     return mapping.findForward("success");   
  6. }  

 

不知道大家出现这种问题没?如何解决的????

分享到:
评论
9 楼 flysky9820000 2008-03-20  
keanfly说的问题也是数据库分页时使用的,ecside2.0rc1这个版本支持预查询功能;也就是说数据库里本来只查询当前显示的页面(如当前显示第2页就只查第2页的内容),但在ecside里是把前后2页也查出来的(如查第2页时就会把第1和第3页也查出来)。doPreload=“false”的意思就是关闭这个预查询功能,action="${pageContext.request.contextPath}/ShowUserList.do"这样写还是会进入action的。fina的博客里有这个版本的文档,可以看看就知道了。
8 楼 flysky9820000 2008-03-20  
呵呵,海盗兄,你把action="${pageContext.request.contextPath}/ShowUserList.do"这句改成
action=""
你在struts里是一次查出所有记录的,这样改后ecside就知道自己从缓存读数据了;
你上面的情况是用于数据库物理分页时使用的;
7 楼 keanfly 2008-03-06  
Attribute doPreload invalid for tag table according to TLD
我用doPreload为何出现上面这种错误呢?
在<ec:table>中使用doPreload="false"
6 楼 JaNer 2007-10-31  
我也遇到这问题了,doPreload=“false”确实没起到作用!不知如何解决啊?
5 楼 王牌海盗 2007-10-26  
郁闷啊。我把doPreload=“false”关了怎么还是不行啊
4 楼 lijun96 2007-10-26  
感谢楼主,我也遇到这样的问题,把预读关了就好了。我们项目里现在在大量使用ecside,不知道在websphere上会不会有什么问题?
3 楼 王牌海盗 2007-10-26  
把doPreload=“false”?
中午回去试一试。
2 楼 lxxing 2007-10-26  
将预读功能关闭就不会了
1 楼 王牌海盗 2007-10-26  
忘了说了,使用的是ecside_2.0_RC1这个版本。

相关推荐

Global site tag (gtag.js) - Google Analytics