基础环境:

Oracle Fusion Middleware Tag Reference for Oracle ADF Faces

11g Release 2 (11.1.2.4.0)

E17491-06 

表格组件是ADF Faces的重要数据展现组件,更准确的描述是表格风格(或表格式)的数据展现组件,它可以通过绑定管理Bean或VO获得要展示的数据。本文介绍了基于Class作为数据模型,应用管理Bean实现表格内容填充的开发过程。


前置,创建基础工程(名称为“DemoTable”):

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第1张图片

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第2张图片


开发过程:

  1. 创建一个类(Class)作为表格行的数据模型。

  2. 创建JSPX页面以及表格组件。

  3. 通过后台管理Bean将数据发送给表格完成展现过程。



  1. 创建数据模型类,命名为TableRow,内涵3个属性:id,name,descr。

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第3张图片

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第4张图片


ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第5张图片

TableRow类代码:

package demo.table.app.view;

public class TableRow {
    private String id,name,descr;

    public TableRow(String id, String name, String descr) {
        super();
        this.id = id;
        this.name = name;
        this.descr = descr;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setDescr(String descr) {
        this.descr = descr;
    }

    public String getDescr() {
        return descr;
    }
}

2.创建JSPX页面以及表格组件。

新建JSPX页面,名为demo1.jspx

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第6张图片

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第7张图片

从右侧的组件清单中选择Table组件,拖拽至页面范围内。

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第8张图片

IDE提示表格基础配置,这一步骤不做修改,直接完成,生成表格组件的默认代码。

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第9张图片

同时IDE提示会辅助插入相关标签代码,点解确认按钮即可。

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第10张图片

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第11张图片

生成后的默认页面状态

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第12张图片

此时页面中的源代码:顺便提一句,表格属性rowBandingInterval指的是间隔高亮显示的行数,0表示不设定。


    
    
        
            
                
                    
                        
                    
                    
                        
                    
                    
                        
                    
                    
                        
                    
                    
                        
                    
                
            
        
    



3.通过后台管理Bean将数据发送给表格完成展现过程。

3.1创建管理Bean类,拥有列表属性“data”,初始化的时候实例化4个表格对象。

package demo.table.app.view;

import java.util.ArrayList;
import java.util.List;

public class TableBean {
    List data = new ArrayList();

    public TableBean() {
        super();
        data.add(new TableRow("1", "张三", "测试用户1"));
        data.add(new TableRow("2", "李四", "测试用户2"));
        data.add(new TableRow("3", "王五", "测试用户3"));
        data.add(new TableRow("4", "奥特曼", "测试用户4"));
    }

    public void setData(List data) {
        this.data = data;
    }

    public List getData() {
        return data;
    }
}

3.2注册管理Bean

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第13张图片

wKiom1eMa6fB12qjAAAOmsa2Lhs107.png-wh_50

3.3修改表格代码

标签中,增加“value="#{bean1.data}"”

修正列信息,与数据模型类的属性想对应:


    
     
  
  
     
  
  
     
   

至此即可运行工程查看结果,右键点击JSPX文件,选择“Run”菜单项:

ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格_第14张图片

运行效果如图:

wKioL1eMa6ejhlDhAAAvQO7dmMw792.png-wh_50

将表格属性rowBandingInterval值修改为1,运行效果如图:

wKiom1eMcE7xWf5VAAAJ5ErSDGw646.png-wh_50


小结:根据开发过程分析可以得出,ADF中表格的开发调用线索:

  1. 页面中定义表格组件

  2. 组件的关键属性通过EL表达式的方式将调用流指向了目标管理Bean

  3. 管理Bean提供表格组件可接受行数据模型对象清单。

  4. 行数据模型对象可以由自定义Class(get/set属性访问器)或Map对象提供。