1. 程式人生 > >ZUL頁面註解語法與Java註解語法

ZUL頁面註解語法與Java註解語法

一、所有註解


二、頁面註解

1、viewModel="@id(name) @init(expression)"

     explanation:用於設定ViewModel

      ◆ 一個擁有apply="org.zkoss.bind.BindComposer"屬性的元件可以使用這個註解,如果沒有這個註解,那麼這個元件將會被設定到一個composer上。

      ◆ expression:如果它被賦予一個Class,那麼這個Class將建立一個ViewModel例項

2、comp-attribute="@load(expression)"

     explanation:單向繫結。用來載入屬性的表示式

      ◆ 使用者可以在表示式中指定繫結條件,通過引數before和after來設定。例如@load(vm.filter,after='myCommand'),這表示Binder會在執行完command方法myCommand之後載入這個屬性

      ◆可以指定多個command

     

3、comp-attribute="@save(expression)"

     explanation:單向繫結。儲存元件的屬性值到ViewModel屬性中的表示式。

     ◆ 使用者可以在表示式中指定繫結條件,通過引數before和after來設定。例如:@save(vm.filter,before='myCommand')

,這表示Binder會在執行command方法myCommand之前儲存這個屬性到ViewModel

4、comp-attribute="@bind(expression)"

     explanation:雙向繫結。在元件的屬性和ViewModel的屬性之間實現雙向繫結,它不支援條件繫結,也就是說在繫結時不能使用條件。

     ◆ 它等同於@load(expression)@save(expression)

     ◆ 如果元件的屬性不支援@save的話,Binder將會自動忽略它

     ◆ 例子:對於表示式e.f.g.h,如果任何一個通知說e.f.g.h、e.f.g、e.f或者e被改變了,那麼元件的屬性將會被重新載入

5、@converter(expression, arg = arg-expression)

     explanation:為繫結提供一個轉換器conveter

    ◆ 如果expression是一個ZK提供的conveter,那麼它將會直接被使用

    ◆ 如果expression是一串字元,那麼它將會從ViewModel中查詢相應的getConveter方法,方法的名字為get+expression返回值為Conveter。

6、comp-event="@command(expression, arg =another-expression)"

     explanation:繫結到相應的事件command方法

    ◆ expression必須是ViewModel中的一個command方法的名字

    ◆ 事件被觸發時,它將會按照ZK Bind Lifecycle來執行這個command方法

三、ViewModel註解

1、@NotifyChange on setter

     explanation:通知(notify)Binder該屬性的值被改變

    ◆ 當呼叫了屬性的setter方法之後,它將會通知(notify)Binder該屬性的值被改變了。它是預設開啟的,在屬性的setter方法上你可以省略不寫這個註解

2、@NotifyChange on command method

     explanation:用於command方法上

    ◆ @NotifyChange(expression)、@NotifyChange({expression1,expression2,……})

3、@NotifyChangeDisabled on setter

     explanation:使setter方法預設開啟的@NotifyChange關閉

4、@Command('commanName')

     explanation:commandName是可選的,如果不指定的話,command方法的名字預設就是它所註解的方法的名字

四、引數註解

1、@BindingParam(“keyString”)

描述:傳遞command方法的引數

功能:Binder可以通過@BindingParam註解中指定的字串來獲取ZUL頁面上繫結的內容



2、@QueryParam("keyString")

描述:傳遞一個方法的引數,這個方法可以是一個command方法,也可以是一個@Init方法。

功能:Binder可以通過@QueryParam中指定的字串在HTTP請求中得到傳遞到ViewModel中的引數

3、@HeaderParam("keyString")

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:Binder可以通過@HeaderParam中指定的字串在HTTP請求中得到傳遞到ViewModel中的引數。與@QueryParam類似


4、@CookieParam("keyString")

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:從HTTP 請求cookie中獲得引數。

5、@ExecutionParam("keyString")

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:獲得當前Excursion設定的Attribute值。

executionparam-inner.zul:



6、@ExecutionArgParam("keyString")

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:獲得當前Execution的argument

7、@ScopeParam("keyString")  或  @ScopeParam(scopes=Scope.APPLICATION, value="keyString")

enum Scope{ COMPONET, SPACE, PAGE, DESKTOP, SESSION, APPLICATION, AUTO}  //對應“元件,空間,頁面,桌面,會話,應用,自動”

預設是AUTO,按COMPONENT-->SPACE-->PAGE-->DESKTOP-->SESSION-->APPLICATION的順序一個個查詢,直到找到不為空的值。

如果限定了Scope,則只會查詢特定的Scope。

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:在指定的Scope中查詢引數。

8、@SelectorParam("#componentId")  、 @SelectorParam("tagName")  、@SelectorParam(".className")  、@SelectorParam(":root")  、

      @SelectorParam("window > button")  、@SelectorParam("button[ label= ' Submit ' ] ")

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:從繫結的元件中獲取引數。通過Selectors根據value值查詢元件。

【通過標籤名"label",取得所有Label元件】


9、@ContextParam(ContextType.XXX)

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:告訴繫結器傳遞指定型別的上下文物件。
enum ContextType { BIND_CONTEXT,  //BindContext instance BINDER,        //Binder instance TRIGGER_EVENT, //Event that trigger the command (since 6.0.1) COMMAND_NAME,  //Command name (since 6.0.1) EXECUTION,     //Execution instance COMPONENT,     //Component instance of current binding SPACE_OWNER,   //IdSpance instance of spaceOwner of current component VIEW,          //the view component of binder PAGE,          //Page instance of current component DESKTOP,       //Desktop instance of current component SESSION,       //Session instance APPLICATION    //Application instance }

10、@Default(“defaultValue”)

描述:傳遞一個方法的引數,可以應用到@Init方法和command方法上。

功能:當繫結引數為空時使用指定的預設值。可以將該註解應用在其他引數相關注解之後,如果第一個註解取到空,則使用該註解指定的預設值。

點選第一個按鈕,arg2為100;點選第二個按鈕,arg為3。

四、@Wire


相關推薦

ZUL頁面註解語法Java註解語法

一、所有註解 二、頁面註解1、viewModel="@id(name) @init(expression)"      explanation:用於設定ViewModel       ◆ 一個擁有apply="org.zkoss.bind.BindComposer"屬性

JDK環境變量Java簡單語法介紹

jdk環境變量 java Dos界面輸入路徑參數: 如果沒有配置JDK環境變量的話,常用的編譯方式就是把javac.exe程序所在的路徑復制粘貼到cmd中,然後加上java文件的所在路徑進行編譯:含義:找到javac.exe程序,然後告訴需要編譯的路徑(參數) 註意:兩者之間要敲一個空格。PAT

memcached(2)常用語法java連線服務

memcached常用語法及java使用方式 Author:SimpleWu Memcached 儲存命令 Memcached set 命令用於將 value(資料值) 儲存在指定的 key(鍵) 中。 如果set的key已經存在,該命令可以更新該key所對

javascript點語法中括號語法

undefined 默認值 java 字符 ole 特殊 進行 原來 點語法 點語法: 點語法根據對象中的鍵來獲取相應的值. let obj = { a: ‘a‘ } console.log(obj.a)// ‘a‘ 創建相應的鍵值對 obj.b = ‘b‘ console

spring中自定義註解(annotation)獲取註解

註解類自定義 package me.lichunlong.spring.annotation; import java.lang.annotation.Documented;    import j

eclipse使用java語法規則

javaeclipse的使用1、運行點擊“三角圖標”或右鍵Run As運行2、3、java語法規範1、括號要成對出現2、每句代碼應該有分號結束3、java語法區分大小寫4、一個文件只能寫一個帶有public的class聲明,還必須和文件名一致。一個文件中不可以有多個帶有public的修飾符號5、名稱寫的時候不

Java簡單語法訪問權限修飾符

政府 face 情況 pst 視頻 符號 bean exc cas Java簡單語法總結 一:Java簡單語法概述 1:分號,關鍵字,空白(空格,空白行),花括號和註釋的使用。 2:標識符的規則(命名規則與業內約定)。 3:Java表達式(逗號,問號和邏輯表達式)。 二

[轉]java註解APT技術

pretty runt src ons data exception clas -m animal 下面是一個簡單的自定義註解的栗子: package annotation; import java.lang.annotation.Docume

Spring註解Java註解小結

spa package param style 值範圍 描述 tro ret 類型 註解 Annotation 基於註解的開發,使得代碼簡潔,可讀性高,簡化的配置的同時也提高了開發的效率,尤其是SpringBoot的興起,隨著起步依賴和自動配置的完善,更是將基於註解的開發推

java高級-泛型<T>和註解封裝使用

bat string 為什麽 cor this 模塊名 vat () parameter p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC"; color: #000000 } span.s1 {

Java基礎語法 - 函式方法

java 是一門面向物件程式設計,其它語言中的函式也就是java中的方法   方法的基本使用方法 1 package com.demo7; 2 3 /* 4 * 函式/方法 5 * 6 * 定義格式: 7 * 修飾符 返回值型別 方法名(引數型別 引數1, 引

深入拆解虛擬機器(十)Java語法Java編譯器

泛型與型別擦除 (1)Java程式裡的泛型資訊,在Java虛擬機器裡全部丟失了。這麼做主要是為了相容引入泛型之前的程式碼。 (2)並不是每一個泛型引數被擦除型別之後都會變成Object類。對於限定了繼承類的泛型引數,經過型別擦除後,所有的泛型引數都將變成所限定的繼承類。也就是說,

groovyjava語法區別

。。 call 類的使用 雙引號 compareto 錯誤 cas math 這也 groovy與java語法區別 Groovy試圖對Java開發人員盡可能地兼容。在設計Groovy時,遵循最不意外的原則,尤其是對於那些來自Java背景的開發人員。 這裏我們列出了Java和

Java中的基礎語法定義

Java中的基礎語法 首先Java是一個完全的面嚮物件語言。這一點決定了Java程式是由一系列的物件組成的,這些物件通過呼叫彼此的方法來完成程式的執行。 接下來理解一下Java中的幾個概念: 類:類是一個模板,在類中定義了一種物件的行為(方法、函式)和狀態(

Java 中的覆蓋@Override註解不寫的不同

1、 一般來說,寫與不寫沒什麼區別,JVM可以自識別 2、寫的情況下:即說明子類要覆蓋基類的方法,基類必須存在方法(控制型別public,protected,返回值,引數列表型別)與子類方法完成一致的方法,否則會報錯(找不到被Override的方法)。 3、在不寫@Overrid

快速學習Python基礎語法Java的不同之處

1、Python識別符號中與Java的不同 Python識別符號中以下劃線開頭的識別符號具有特殊意義。 以單下劃線開頭 _foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from xxx import * 而匯入; 以雙下劃線開頭的 __foo

Java註解反射應用的小例子

1.功能介紹    小例子主要完成以下功能,通過Java反射獲取SQL語句,使用MyBatis傳入SQL語句,將資料插入到資料庫中2.程式碼講解2.1 自定義註解    首先看一個自定義註解,在此例子中我自定義了兩個註解,一個叫DBTable,另一個是DBColumn。   

Java @Override註解不寫的區別

/* 一般來說,寫與不寫沒什麼區別,JVM可以自識別 寫的情況下:即說明子類要覆蓋基類的方法,基類必須存在方法 (控制型別public,protected,返回值,引數列表型別)與子類方法完成一致的方法,否則會報錯(找不到被Override的方法)。 在

(JAVA必備)Lombok(小辣椒)的安裝出現註解無效的問題

一 . 概述使用lombok可以簡化我們的JAVA程式碼,雖然使用Eclipse或者IDEA可以一鍵生成,但是還是有點麻煩,下面推薦這款工具:二 . 安裝與可能出現的問題1 首先官網下載lombok.jar2 開啟下載好的lombo.jar,會彈出下面的介面,能夠識別你電腦上

Java 中的覆蓋@Override註解不寫的一點點理解

Java程式碼  /*俺的菜鳥筆記     Java 中的覆蓋@Override註解 寫與不寫的一點點理解     一般來說,寫與不寫沒什麼區別,JVM可以自識別     寫的情況下:即說明子類要覆蓋基