[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 听起来没什么问题吧。你提交的时候 会发现 数据是不全的。如果在表单上用了树等有状态的组件 问题更大。你可以试一下,下一回说怎么解决 |