溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

發(fā)布時(shí)間:2020-06-21 10:13:17 來源:網(wǎng)絡(luò) 閱讀:1036 作者:小伙伴伴 欄目:開發(fā)技術(shù)

基礎(chǔ)環(huán)境:

Oracle Fusion Middleware Tag Reference for Oracle ADF Faces

11g Release 2 (11.1.2.4.0)

E17491-06 

<af:table>表格組件是ADF Faces的重要數(shù)據(jù)展現(xiàn)組件,更準(zhǔn)確的描述是表格風(fēng)格(或表格式)的數(shù)據(jù)展現(xiàn)組件,它可以通過綁定管理Bean或VO獲得要展示的數(shù)據(jù)。本文介紹了基于Class作為數(shù)據(jù)模型,應(yīng)用管理Bean實(shí)現(xiàn)表格內(nèi)容填充的開發(fā)過程。


前置,創(chuàng)建基礎(chǔ)工程(名稱為“DemoTable”):

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格


開發(fā)過程:

  1. 創(chuàng)建一個(gè)類(Class)作為表格行的數(shù)據(jù)模型。

  2. 創(chuàng)建JSPX頁面以及表格組件。

  3. 通過后臺(tái)管理Bean將數(shù)據(jù)發(fā)送給表格完成展現(xiàn)過程。



  1. 創(chuàng)建數(shù)據(jù)模型類,命名為TableRow,內(nèi)涵3個(gè)屬性:id,name,descr。

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格


ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

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.創(chuàng)建JSPX頁面以及表格組件。

新建JSPX頁面,名為demo1.jspx

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

從右側(cè)的組件清單中選擇Table組件,拖拽至頁面范圍內(nèi)。

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

IDE提示表格基礎(chǔ)配置,這一步驟不做修改,直接完成,生成表格組件的默認(rèn)代碼。

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

同時(shí)IDE提示會(huì)輔助插入相關(guān)標(biāo)簽代碼,點(diǎn)解確認(rèn)按鈕即可。

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

生成后的默認(rèn)頁面狀態(tài)

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

此時(shí)頁面中的源代碼:順便提一句,表格屬性rowBandingInterval指的是間隔高亮顯示的行數(shù),0表示不設(shè)定。

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:f="http://java.sun.com/jsf/core">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
        <af:document title="demo1.jspx" id="d1">
            <af:form id="f1">
                <af:table var="row" rowBandingInterval="0" id="t1">
                    <af:column sortable="false" headerText="col1" id="c1">
                        <af:outputText value="#{row.col1}" id="ot1"/>
                    </af:column>
                    <af:column sortable="false" headerText="col2" id="c2">
                        <af:outputText value="#{row.col2}" id="ot2"/>
                    </af:column>
                    <af:column sortable="false" headerText="col3" id="c3">
                        <af:outputText value="#{row.col3}" id="ot3"/>
                    </af:column>
                    <af:column sortable="false" headerText="col4" id="c4">
                        <af:outputText value="#{row.col4}" id="ot4"/>
                    </af:column>
                    <af:column sortable="false" headerText="col5" id="c5">
                        <af:outputText value="#{row.col5}" id="ot5"/>
                    </af:column>
                </af:table>
            </af:form>
        </af:document>
    </f:view>
</jsp:root>



3.通過后臺(tái)管理Bean將數(shù)據(jù)發(fā)送給表格完成展現(xiàn)過程。

3.1創(chuàng)建管理Bean類,擁有列表屬性“data”,初始化的時(shí)候?qū)嵗?個(gè)表格對(duì)象。

package demo.table.app.view;

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

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

    public TableBean() {
        super();
        data.add(new TableRow("1", "張三", "測(cè)試用戶1"));
        data.add(new TableRow("2", "李四", "測(cè)試用戶2"));
        data.add(new TableRow("3", "王五", "測(cè)試用戶3"));
        data.add(new TableRow("4", "奧特曼", "測(cè)試用戶4"));
    }

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

    public List<TableRow> getData() {
        return data;
    }
}

3.2注冊(cè)管理Bean

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

3.3修改表格代碼

在<af:table>標(biāo)簽中,增加“value="#{bean1.data}"”

修正列信息,與數(shù)據(jù)模型類的屬性想對(duì)應(yīng):

<af:table var="row" rowBandingInterval="0" id="t1" value="#{bean1.data}">
    <af:column sortable="false" headerText="id" id="c1">
     <af:outputText value="#{row.id}" id="ot1"/>
  </af:column>
  <af:column sortable="false" headerText="name" id="c2">
     <af:outputText value="#{row.name}" id="ot2"/>
  </af:column>
  <af:column sortable="false" headerText="descr" id="c3">
     <af:outputText value="#{row.descr}" id="ot3"/>
  </af:column> 
</af:table>

至此即可運(yùn)行工程查看結(jié)果,右鍵點(diǎn)擊JSPX文件,選擇“Run”菜單項(xiàng):

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

運(yùn)行效果如圖:

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格

將表格屬性rowBandingInterval值修改為1,運(yùn)行效果如圖:

ADF Faces 表格應(yīng)用基礎(chǔ)案例一:應(yīng)用List<Class>填充文本表格


小結(jié):根據(jù)開發(fā)過程分析可以得出,ADF中表格的開發(fā)調(diào)用線索:

  1. 頁面中定義表格組件

  2. 組件的關(guān)鍵屬性通過EL表達(dá)式的方式將調(diào)用流指向了目標(biāo)管理Bean

  3. 管理Bean提供表格組件可接受行數(shù)據(jù)模型對(duì)象清單。

  4. 行數(shù)據(jù)模型對(duì)象可以由自定義Class(get/set屬性訪問器)或Map對(duì)象提供。


附件:http://down.51cto.com/data/2367928
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI