2014-01-15 10 views
1

在我的ADF項目中,我有一個JSF頁面上的表組件,它的value屬性綁定到Managed bean中的方法,該方法返回List類型對象。我能夠在桌面上顯示數據,但是我可以看到執行多達22次的方法!爲什麼這個方法被多次調用,並且當我們通過Data控件公開它們時,業務組件也會發生同樣的事情? TIA爲什麼ADF中的表組件在我綁定到value屬性的方法上迭代多次

編輯: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> 

豆方法是:

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; 
    } 

回答

0

當使用ADF BC,從你VO其通過數據控制暴露在AM中顯示的數據,您可以指定VO調整屬性,這可以確定在一次往返中從數據庫中提取多少條記錄。這是分批命名的。您可以指定迭代器的範圍大小,與您一次從數據庫中獲取的記錄數以及UI中需要顯示的表的數量同步。 af:table有一個名爲fetchSize的屬性,如果你設置這個屬性的值等於迭代器範圍大小20,而VO> Tuning>批量= 20,它只會查詢一次。默認情況下,批量VO等於1,在這種情況下,如果顯示的表格中autoheightrows = 20,在這種情況下,表格將從數據庫多次查詢數據。

相關問題