Jsf 为什么ADF中的表组件在绑定到value属性的方法上多次迭代

Jsf 为什么ADF中的表组件在绑定到value属性的方法上多次迭代,jsf,oracle-adf,Jsf,Oracle Adf,在我的ADF项目中,JSF页面上有一个表组件,其值属性绑定到托管bean中的方法,该方法返回列表类型对象。我可以在表中显示数据,但我可以看到该方法被执行多达22次!为什么要多次调用该方法?当我们通过数据控制公开业务组件时,是否也会发生同样的情况?短暂性脑缺血发作 编辑:JSPX代码: <af:table var="row" rowBandingInterval="1" autoHeightRows="10"

在我的ADF项目中,JSF页面上有一个表组件,其值属性绑定到托管bean中的方法,该方法返回列表类型对象。我可以在表中显示数据,但我可以看到该方法被执行多达22次!为什么要多次调用该方法?当我们通过数据控制公开业务组件时,是否也会发生同样的情况?短暂性脑缺血发作

编辑:JSPX代码:

<af:table var="row" rowBandingInterval="1"
                            autoHeightRows="10"
                            binding="#{backingBeanScope.backing_ForEachExample.t2}"
                            id="t1" partialTriggers=":::cb1"
                            styleClass="AFStretchWidth"
                            value="#{backingBeanScope.backing_ForEachExample.test2}">
                    <af:column sortable="false" headerText="col1" id="c3">
                      <af:outputText value="#{row}" id="ot2"/>
                    </af:column>
                  </af:table>

Bean方法是:

    public   List<String> gettest2(){


    /* Unique values are derived */


    List<String> tab=new ArrayList<String>();

    for(String s:uniqueValues){
        System.err.println("? Unique Value is : "+s);

              tab.add(s);      
    }     

    return tab;
    }
public List gettest2(){
/*将导出唯一值*/
列表选项卡=新建ArrayList();
用于(字符串s:唯一值){
System.err.println(“?唯一值为:“+s”);
表3.添加(s);
}     
返回选项卡;
}

当您使用ADF BC时,通过数据控件在AM中显示VO中的数据,您可以指定VO调优属性,该属性确定在一次往返过程中从数据库中获取的记录数。这是以批次命名的。您可以指定迭代器的范围大小,以与一次从数据库中获取的记录数以及需要在UI的表中显示的记录数同步。af:table有一个名为fetchSize的属性,如果您将该属性设置为等于迭代器范围大小(比如20)的某个值,并且VO>Tuning>in batches of=20,它将只查询一次。默认情况下,批次中的VO等于1,在这种情况下,如果显示autoheightrows=20的表,在这种情况下,表将从数据库中多次查询数据