ZK學習筆記

因工作需要,正在學習有關ZK FrameWork開發框架,其中可能會有一些心得體會,以此博客記錄在此.便於備查.

P.S 正在學習的ZK FrameWork是公司在原來的ZK框架上做了封裝,多包裝了一層公司自訂邏輯或界面在里面,所以可能有些函數或zul標籤會與官方內容不同.

1.在zul頁面對應的java源碼中,如果需要通過id訪問某個物件時,最好在前面加上this.這個代名詞,如: this.master.setModal();

2.如果資料庫中欄位是用Y/N來表示真假值,在網頁上希望用checkbox來表達時,不能直接通過fld屬性來對應.而是放一個空的checkbox元素,給定一個id號.然后再重做onRenderEntity事件內容,在該事件中取得bean中對應屬性,判斷為Y或N時,直接根據checkbox的id號,調用Checkbox的setChecked()賦值即可.注意判斷屬性為Y或N時,不能直接用==,因為我們在bean中定義的是String類型,所以需要用equal()判斷.

3.在實作onRenderEntity事件時,如果是對from控件,則直接用event.getEntity();可以得到實體bean.如果對Lisbox控件,則可以通過event.getContainer()得到當前一筆資料的實體,再通過item.getComponent("id名")取得該筆資料的某個id元素.

4.getChildren()函數可以返回當前組件的所有子元件,如要分離(detach)所有子元件,可以用 comp.getChildren().clear();

5.在當前zul頁面加入另外一個頁面時,可以用<include>標簽.其中 mode屬性用來說明加入的頁面是獨立的page,還是追加到當前頁面.

    mode="instant"時表示加載的頁而追加到當前頁面.

    mode="defer"時表示加載的zul頁面會建立一個獨立的page.

    mode="auto"時表示由系統自動判斷,一般當加載的頁而為.zul或.zhtml時,會使用instant模式,其它則使用defer模式.

6.要附加(attach)一個組件到page上時,可以使用appendChild()或setPage()方法.一個組件只可以有一個父對象,當附加到其它元件上時,之前的附加會自動失效.

7.要分離(detach)一個組件時,可以使用comp.setParent(null)或者comp.setPage(null)處理.

8.在一個ID space中可以通過getFellow()取得某個ID號的元件.也可以通過getSpaceOwner()及getSpaceOwnerOfParent()取得當前ID space的所有者或上層所有者.

9.在打開網頁時,可能會要有傳入參數的情況如:test.zul?no=abcd 如果是想在zul文件中取得該參數值,可以用${param.no}語法.如果是想在java中取得該參數值,可以用Executions.getCurrent().getParameter("no")方法.

10.在程式開發時,有可能會針對一些欄位設定約束規則,在ZUL中是通過標籤的Constraint屬性來設定,也可以在java檔案中通過setConstraint()方法來動態調整,如果在程式中要判斷一個輸入控件的內容是否符合規則,則可以使用getErrorMessage()方法判斷,如果方法有值,則表示有錯誤.否則為空.

11.在设计一个文本输入控件时,如果要限制只能输入大写或小写,可以通过设定style方式处理,如<textbox style="text-transform:uppercase"/>


 

你可能感兴趣的:(java,bean,框架,zk,include,textbox)