運作環境:JDeveloper 11.1.2.1.0 + Oracle Database 10g Express Edition 10.2.0.1。
實驗說明:需求來自一個Partner,他們希望能夠自動重新整理一個表格。
實作步驟非常簡單,定義一個poll元件,定期執行一個方法,重新整理表格。
1. poll元件
屬性interval是間隔的毫秒數。
屬性pollListener是執行的Managed Bean的方法。
<af:poll id="tablePoller" interval="5000" pollListener="#backingBeanScope.myBackingBean.pollListener}"/>
2. Magaged Bean的方法
public void pollListener(PollEvent pollEvent) {
DCBindingContainer dcBindings = (DCBindingContainer)getBindings();
DCIteratorBinding dcIterator = dcBindings.findIteratorBinding("JobsView1Iterator");
dcIterator.executeQuery();
}
3. 測試
在背景手工修改資料庫中的資料并送出,觀察頁面,發現自動顯示了新修改的資料。
界面的效果是每次自動重新整理表格時,表格會抖動一下。
如果希望表格不抖動,需要使用ADF的另一個進階技術:Active Data Service。
4. 更進一步,自動執行查詢,重新整理Table
如果是帶有查詢條件,希望自動擷取條件,并執行查詢,結果用Table顯示。
經過實驗,代碼與前面完全一樣就可以。
效果是會自動擷取條件并執行查詢,如果要更改條件,需要點選按鈕确認,這樣以後每次都是使用新的條件查詢。