ADF:將UI類別與動態表單一起使用

JDev 11g R2具有有趣的新功能“ UI類別”。 它使我們可以在視圖對象定義級別上以聲明方式對VO的屬性進行分組。 例如,我的VEmployees視圖對象的“ UI Categories”選項卡如下所示:

默認情況下,每個視圖對象都有一個預定義的類別“默認”。 我創建了三個新類別“名稱”,“聯系人”,“其他”,并為其分配了屬性。 在此選項卡上,我們還可以為我們的類別定義標簽和工具提示。 在“應用程序模塊測試器”窗口中,它看起來像這樣:

根據文檔 , 動態表格和搜索表格應使用UI類別。 ADF Faces動態表單組件確實具有新的屬性Category 。 該表格過濾VO的屬性,僅顯示指定類別的屬性。 例如,如果我想顯示“ 名稱”類別的屬性,則可以使用以下構造:

<dynamic:form value="#{bindings.VEmployeesIterator}" id="f3" category="Name"/>

因此,如果我們要分別顯示不同的類別,則必須為每個類別使用<dynamic:form標記。 但是文檔提供了一個非常有趣的句子“ 對于動態表單,每個類別的屬性將出現在單獨的選項卡中 ”。 我想我們應該自己實現此功能:)。 在這篇文章中,我將展示我們如何做到這一點

在我的視圖對象的實現類中,我定義了一些API方法來獲取視圖對象的所有UI類別(默認類別除外):

public List<Category> getAttrCategries() {return getOrderedCategories(false, //except DefaultCategoryType.ATTRIBUTE, null); }

為了在頁面上為每個UI分類繪制選項卡,我使用了以下jspx代碼:

因此,在這種簡單的構造中,我在navgationPane中使用forEach標簽為每個類別繪制commandNavigationItem。 MainDynamicBean托管bean的Java代碼如下所示:

//Currently selected tabprivate String selectedItem;//Getting categories listpublic List<Category> getCategoryList() {return (List<Category>) resolveExpression("#{bindings.VEmployeesIterator.viewObject.attrCategries}");}//Just a setterpublic void setSelectedItem(String selectedItem) {this.selectedItem = selectedItem;}//Getting selected itempublic String getSelectedItem() {//If nothing is selected, then select the first oneif (selectedItem == null) {List<Category> l = getCategoryList();if (l.size()>0) selectedItem =? l.get(0).getName();??????????????? }??????? return selectedItem;}//Resolving EL expressionspublic static Object resolveExpression(String expression) {FacesContext facesContext =? FacesContext.getCurrentInstance();Application app = facesContext.getApplication();ExpressionFactory elFactory = app.getExpressionFactory();ELContext elContext = facesContext.getELContext();ValueExpression valueExp = elFactory.createValueExpression(elContext, expression, Object.class);return valueExp.getValue(elContext);}

最后,我使用以下構造繪制具有所選類別屬性的動態表單:

<dynamic:form value="#{bindings.VEmployeesIterator}" id="f2"binding="#{MainDynamicBean.dynform}"forceRefresh="#{MainDynamicBean.needRefresh}"/>

和適當的一段Java代碼:

private DynamicForm dynform;//Setterpublic void setDynform(DynamicForm dynform) {this.dynform = dynform;}//Getterpublic DynamicForm getDynform() {return dynform;}public Boolean getNeedRefresh() {//If selected category is not equal to dynform's category//then set needed category and refresh the dynamic formif (dynform.getCategory()!=getSelectedItem()) {this.dynform.setCategory(getSelectedItem()); return true;}else return false;????????????? }

作為我們工作的結果,我們得到了以下屏幕:

就這樣!
您可以下載此帖子的示例應用程序 。

參考:來自ADF實踐博客的JCG合作伙伴 Eugene Fedorenko的“ 動態使用UI類別”表單 。


翻譯自: https://www.javacodegeeks.com/2012/04/adf-using-ui-categories-with-dynamic.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373009.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373009.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Exchange超級實用命令行

發現Powershell很強大以后&#xff0c;就欲罷不能了。來點干貨 有PST文件的沒有成功導出&#xff0c;原因是執行時會報錯&#xff0c;說需要64位Outlook&#xff0c;dotnet4.5以上環境。還有說法是Exchange2010開始不支持PST導入導出。 整理了一下最近嘗試比較實用的命令&#…

位數不足前面補0mysql語句_全網熱議:監控補光燈爆亮閃瞎眼!你遇到過嗎?

唔知大家有無咁ga體會每當夜晚揸車經過一排監控補光燈瞬間像“瞎子”那樣看不到東西&#xff0c;“威力”堪比遠光燈(△ 11月12日晚&#xff0c;安定門外大街&#xff0c;主路上的監控補光燈)近日&#xff0c;“監控補光燈太刺眼&#xff0c;給夜間行車安全造成極大隱患”一事引…

4種常見的 PHP 設計模式

工廠模式 在大型系統中&#xff0c;許多代碼依賴于少數幾個關鍵類。需要更改這些類時&#xff0c;可能會出現困難。例如&#xff0c;假設您有一個從文件讀取的 User 類。您希望將其更改為從數據庫讀取的其他類&#xff0c;但是&#xff0c;所有的代碼都引用從文件讀取的原始類。…

三網合一是指計算機網,什么是三站合一網站?什么是三網合一網站?

原標題&#xff1a;什么是三站合一網站&#xff1f;什么是三網合一網站&#xff1f;三站合一網站和三網合一網站是一個概念&#xff0c;都是指PC網站手機網站微信網站1. 什么是電腦網站指針對普通PC電腦上或筆記本的屏幕進行排版設計的網站&#xff0c;只有在普通PC電腦上或筆記…

使用HMAC(Play 2.0)保護REST服務

我們有HTTPS&#xff0c;還需要什么&#xff1f; 當您談論基于REST的API的安全性時&#xff0c;人們通常會指向HTTPS。 借助HTTPS&#xff0c;您可以使用每個人都熟悉的方法輕松保護您的服務免遭窺視。 但是&#xff0c;當您需要更高級別的安全性或HTTPS不可用時&#xff0c;您…

安裝卡主_智能溫室四周玻璃的安裝學問還這么多

智能玻璃溫室大棚是指頂部及四周以玻璃為覆蓋材料的尖頂溫室大棚&#xff0c;玻璃溫室大棚這幾年的流行是由于紋絡型溫室頂部陽光板問題的抗老化方面容易出現問題。因此很多客戶為了種植獲得更高的透光率&#xff0c;更長的使用年限&#xff0c;因而多選擇全玻璃溫室大棚。那么…

String類詳解(1)

首先String是一個類。  1&#xff0c;實例化String類方法。 1&#xff09;直接賦值&#xff1a;String name"haha"; 2)通過關鍵字&#xff1a;String namenew String("haha"); 2&#xff0c;String類的數據比較。 首先回顧一下&#xff0c;基礎數據的比較…

第六章 計算機網絡與i教案,大學計算機基礎教案第6章計算機網絡基礎與應用.docx...

廣東第二師范學院計算機科學系教案課程名稱計算機基礎I課程代碼111012003課程類型公必√□ 專必□ 專選□ 公選□授課方式講授□ 實踐□案例討論□ 上機√□考核方式考試□√ 考查□上機□√ 論文□教學總學時數16學分數1學時分配課堂講授 2 學時&#xff1b;實踐課 14 學時教材…

分享性能優化問題

談談性能優化問題 代碼層面&#xff1a;避免使用css表達式&#xff0c;避免使用高級選擇器&#xff0c;通配選擇器。 緩存利用&#xff1a;緩存Ajax&#xff0c;使用CDN&#xff0c;使用外部js和css文件以便緩存&#xff0c;添加Expires頭&#xff0c;服務端配置Etag&#xff0…

使用Scala,Play和Akka連接到RabbitMQ(AMQP)

在本文中&#xff0c;我們將研究如何從Scala連接到RabbitMQ&#xff0c;以便可以從應用程序中支持AMQP協議。 在此示例中&#xff0c;我將使用Play Framework 2.0作為容器&#xff08;有關更多信息&#xff0c;請參閱我在該主題上的其他文章 &#xff09;在其中運行應用程序&am…

阿爾法貝塔閥原理_圖總結 - 阿爾法個貝塔 - 博客園

一.思維導圖二.概念筆記圖的存儲結構1. 鄰接矩陣定義&#xff1a;設圖G有n (n大于等于1) 個頂點&#xff0c;則鄰接矩陣是一個n階方陣。當矩陣中的 [i,j] !0(下標從1開始) ,代表其對應的第i個頂點與第j個頂點是連接的特點無向圖的鄰接矩陣是對稱矩陣&#xff0c;n個頂點的無向圖…

WebApi Post 后臺無法獲取參數的解決方案

事件回放&#xff1a; 之前一段時間&#xff0c;公司里前端用的Angularjs 發送http請求也是用的ng的組件&#xff0c;后臺是.Net的WebApi 前端 var data {PArgs: {PageIndex: 0,PageSize: 8,RowsCount: 0} };$http.post("/Api/Test/ABC", data).success(function (d…

南京大學計算機系周小莉,周會群

媒體報道&#xff1a;南京大學周會群&#xff1a;用計算機聰明地做實驗Q《中國教育網絡》A周會群Q&#xff1a;南京大學的高性能計算中心非常特殊&#xff0c;分布在物理&#xff0c;化學、天文、地球科學四個不同的學科中&#xff0c;為什么采取這種模式&#xff1f;A&#xf…

不要慫,就是GAN (生成式對抗網絡) (五):無約束條件的 GAN 代碼與網絡的 Graph...

GAN 這個領域發展太快&#xff0c;日新月異&#xff0c;各種 GAN 層出不窮&#xff0c;前幾天看到一篇關于 Wasserstein GAN 的文章&#xff0c;講的很好&#xff0c;在此把它分享出來一起學習&#xff1a;https://zhuanlan.zhihu.com/p/25071913。相比 Wasserstein GAN &#…

用于MyBatis CRUD操作的Spring MVC 3控制器

到目前為止&#xff0c;我們已經為域類“ User ”創建了CRUD數據庫服務&#xff0c;并且還將MyBatis配置與Spring Configuration文件集成在一起。 接下來&#xff0c;我們將使用Spring MVC創建一個網頁&#xff0c;以使用MyBatis CRUD服務對數據庫執行操作。 使用MyBatis 3創建…

2pin接口耳機_拆解報告:雷柏首款真無線耳機XS200

-----我愛音頻網拆解報告第185篇-----雷柏是一家歷史悠久的鼠標和鍵盤廠商&#xff0c;截至目前&#xff0c;雷柏(rapoo)總共出了四款耳機&#xff0c;此前曾推出過三款藍牙耳機&#xff0c; 分別是S500 藍牙立體聲麥克風耳機&#xff0c;S200 藍牙立體聲麥克風耳機&#xff0c…

html表單中陰影,html5中input表單加邊框,陰影效果.doc

文檔介紹&#xff1a;CSS:input:focus{border-color:#99;}獲取焦點時改變顏色focus能同時改變寬度長度背景色…….form,p(margin-bottom:30px;margin-left:20px;).shadow,.one,.two,.three,.four,.five,.six( height:50px; width:280px; border:C;).shadow( -moz-box-shadow:C;…

帶有GSON和抽象類的JSON

經過多年使用org.json庫在Java中支持JSON數據交換格式后&#xff0c;我已切換到Google Gson 。 org.json是一個較低級的庫&#xff0c;因此您必須創建JSONObject&#xff0c;JSONArray&#xff0c;JSONString等…并執行其他低級工作。 Gson簡化了這項工作。 它提供了簡單的toJs…

深入理解javascript原型和閉包(3)——prototype原型

轉載&#xff0c;原文地址http://www.cnblogs.com/wangfupeng1988/p/3978131.html 既typeof之后的另一位老朋友&#xff01; prototype也是我們的老朋友&#xff0c;即使不了解的人&#xff0c;也應該都聽過它的大名。如果它還是您的新朋友&#xff0c;我估計您也是javascript的…

python 溫度 符號_Python通過小實例入門學習---1.0(溫度轉換)

1.安裝Python 3 下載地址: Welcome to Python.org?www.python.org 2.“溫度轉換”實例:攝氏度--->華氏度 / 華氏度--->攝氏度 TempConvert.py TempStr = input("請輸入帶有符號的溫度值:") if TempStr[-1] in ["f","F"]:C = (eval(Tem…