[Ajax4JSF] jsf的table两次get如何处理

风之狐 2008-06-23
代码就不贴了,用的就是扩展DataModel的方法实现的分页
http://wiki.apache.org/myfaces/WorkingWithLargeTables
设置的每次取最大5个数据。

页面table设置每行5个数据。
取数函数实现的方法如下:
	   protected DataPage<Department> getDataPage(int startRow, int pageSize) {
		  
		   
		   int i=0;
		   ArrayList list=new ArrayList();
		   // access database here, or call EJB to do so
		   
//从起始行开始,取得后台设置的每次取数条数
		   for(i=startRow;i<startRow+pageSize&&i<20;i++)
		   {
			   Department dep=new Department();
			   dep.setId(i);
			   dep.setName("test:"+String.valueOf(i));
			   list.add(dep);
		   }
                     //检测取数函数调用次数
		   System.out.println("getData:"+startRow);
		   return new DataPage(20,startRow,list);
		    }




输出结果如下:
第一页:
getData:0
getData:0
第二页:
getData:0
getData:5
。。。。。。
发现每页均取得起始的数据,就是getData:0
更改页面每页显示行或者后台每次取数条数均存在这个问题。
不知道该如何解决
hpowersoft 2008-06-23
用t:savedata保存
rockjava 2008-06-24
t:savedata会把大量数据保存在页面上,会使你的页面变得很大
hpowersoft 2008-06-24
请楼上的给个正解
wincheer 2008-06-24
这是jsf本身的问题。
在恢复视图阶段,一次读取数据是当前显示的,另一次是前一个视图的数据;
解决方案是加入seam的conversation即可。
风之狐 2008-06-24
查了一下官方的论坛,这个是jsf的本身的问题,目前没有很好的解决办法,要么save要么就多查一次。
希望jsf2不要让人失望
xiao0556 2008-06-25
JSF还有更恶心的地方呢,大家慢慢发现吧 会有惊喜的。偶已经放弃JSF
风之狐 2008-06-25
说一下嘛,让我彻底死了当前学jsf的心。目前的问题已经让我抓狂了
kimmking 2008-06-25
除非save了数据

不然度两次
xiao0556 2008-06-26
风之狐 写道
说一下嘛,让我彻底死了当前学jsf的心。目前的问题已经让我抓狂了

好让你看看我用JSF做应用一年发生的灵异事件之冰山一角,举个例子:
有一个用户注册表单 用户有三种类型 企业 个人 研究机构。每种类型的表单是不一样的。根据用户选择的类型动态切换表单 用Ajax的JSF组件做。OK 听起来没什么问题吧。你提交的时候 会发现 数据是不全的。如果在表单上用了树等有状态的组件 问题更大。你可以试一下,下一回说怎么解决
Global site tag (gtag.js) - Google Analytics