您好,登錄后才能下訂單哦!
基礎(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”):
開發(fā)過程:
創(chuàng)建一個(gè)類(Class)作為表格行的數(shù)據(jù)模型。
創(chuàng)建JSPX頁面以及表格組件。
通過后臺(tái)管理Bean將數(shù)據(jù)發(fā)送給表格完成展現(xiàn)過程。
創(chuàng)建數(shù)據(jù)模型類,命名為TableRow,內(nèi)涵3個(gè)屬性:id,name,descr。
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
從右側(cè)的組件清單中選擇Table組件,拖拽至頁面范圍內(nèi)。
IDE提示表格基礎(chǔ)配置,這一步驟不做修改,直接完成,生成表格組件的默認(rèn)代碼。
同時(shí)IDE提示會(huì)輔助插入相關(guān)標(biāo)簽代碼,點(diǎn)解確認(rèn)按鈕即可。
生成后的默認(rèn)頁面狀態(tài)
此時(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
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):
運(yùn)行效果如圖:
將表格屬性rowBandingInterval值修改為1,運(yùn)行效果如圖:
小結(jié):根據(jù)開發(fā)過程分析可以得出,ADF中表格的開發(fā)調(diào)用線索:
頁面中定義表格組件
組件的關(guān)鍵屬性通過EL表達(dá)式的方式將調(diào)用流指向了目標(biāo)管理Bean
管理Bean提供表格組件可接受行數(shù)據(jù)模型對(duì)象清單。
行數(shù)據(jù)模型對(duì)象可以由自定義Class(get/set屬性訪問器)或Map對(duì)象提供。
免責(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)容。