日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mvvm 耗時加載進度條

先前的文章簡要介紹了RIA框架ZK,以及其CSS Selector啟發的控制器機制如何通過使在控制器類中引用UI組件的任務變得相對靈活來減輕UI更改所帶來的一些負擔。

然后,我們在上一篇文章中探討了ZK中的MVVM模式如何允許單個ViewModel提供不同的視圖。

這篇文章標志著一系列文章的開始,這些文章將逐步使用ZK從頭開始構建一個簡單的應用程序。

目的

現在,我們將構建一個簡單的庫存管理功能,該功能僅限于將數據收集從數據庫加載和呈現到表中。

ZK實戰功能

  • MVVM:加載
  • 模板標簽

使用MVVM將數據加載并渲染到表中

假設有一個名為“ Item”的對象的集合,并且有一個DataService類,該類負責緩存和與數據庫(MongoDB和Morphia)進行通信。

@Entity("items") public class Item {@Idprivate ObjectId id;private String name;private String model;private int qty;private float price;private Date datemod;// getters & setters

要將數據呈現到ZK中所示的表中,我們需要實現以下部分:

  • 一個將用作我們的ViewModel的POJO
  • ZK標記文件作為我們的演示文稿

ViewModel類

public class InventoryVM {private List<item> items;public List<item> getItems() throws Exception{items = DataService.getInstance().getAllItems();return items;}}
  • 第3行,需要將項目列表聲明為VM類的屬性
  • 第5行,我們需要提供一個getter方法,以便Binder可以檢索項目列表。 概括地說,活頁夾保留了對UI組件和ViewModel的引用,因此,當View中觸發事件時,它可以使雙方的數據以及ViewModel中的調用命令方法保持同步。

標記

<window apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('lab.sphota.zk.ctrl.InventoryVM')"><listbox model="@load(vm.items) "><listhead><listheader label="Name" /><listheader label="Model" /><listheader label="Quantity" /><listheader label="Unit Price"/><listheader label="Last Modified" /></listhead><template name="model" var="item" ><listitem><listcell><textbox value="@load(item.name)" inplace="true" /></listcell><listcell><textbox value="@load(item.model)" inplace="true" /></listcell><listcell><spinner value="@load(item.qty)" inplace="true" /></listcell><listcell><decimalbox value="@load(item.price)" inplace="true" format="#,###.00"/></listcell><listcell label="@load(item.datemod)" /></listitem></template></listbox> </window>
  • 第1行,我們應用ZK的BindComposer的默認實現。 它負責實例化我們的VM實例以及Binder實例。
  • 第2行,我們提供了要實例化的ViewModel的完整類名,并為其提供了ID(在本例中為“ vm”),以供將來參考
  • 在第3行中,我們將一個數據模型(作為ViewModel實例的屬性制作)分配給列表框。
  • 在第11行,我們指示Template組件迭代給定的集合。 我們還聲明了一個名為“ item”的變量,該變量將迭代處理集合中的每個Item對象。 或者,我們可以省略變量聲明,并使用關鍵字“ each”來引用數據對象(Item)。
  • 在第14、17、20、23、26行中,我們檢索要在列表框中顯示的Item屬性。
  • 在這里,我們使用Listcell內的輸入元素(文本框,微調框,十進制框)來預期將來可編輯表的實現。 如果未選擇這些屬性,則“ inplace = true”屬性會將這些輸入元素呈現為常規標簽。



結語

ZK Binder是ZK MVVM工作的核心。 它包含對UI組件和ViewModel的引用。 ViewModel類只是一個POJO,我們在其中聲明和分配數據模型。 它公開了getter方法,因此Binder可以檢索數據并將其綁定到它們各自的帶注釋的UI組件。 然后,template標簽允許我們相對于數據模型迭代地呈現UI組件。 在我們的例子中,使用模板標記通過bean集合迭代地呈現5個Listcell的行,每個單元具有bean屬性。

在下一篇文章中,我們將實現“添加”功能,以便我們可以使用MVVM的表單綁定將新條目保存到現有清單中。

參考 ZK開發人員參考

參考: ZK in Action [0]:MVVM –從Tech Dojo博客上的JCG合作伙伴 Lance Lu 加載和渲染數據 。


翻譯自: https://www.javacodegeeks.com/2012/07/zk-in-action-mvvm-load-and-render-data.html

mvvm 耗時加載進度條

總結

以上是生活随笔為你收集整理的mvvm 耗时加载进度条_ZK的实际应用:MVVM –加载和渲染数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。