ZUL页面注解语法与Java注解语法

一、所有注解

ZUL页面注解语法与Java注解语法_第1张图片

二、页面注解

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中的参数

ZUL页面注解语法与Java注解语法_第2张图片

3、@HeaderParam("keyString")

描述:传递一个方法的参数,可以应用到@Init方法和command方法上。

功能:Binder可以通过@HeaderParam中指定的字符串在HTTP请求中得到传递到ViewModel中的参数。与@QueryParam类似

ZUL页面注解语法与Java注解语法_第3张图片

4、@CookieParam("keyString")

描述:传递一个方法的参数,可以应用到@Init方法和command方法上。

功能:从HTTP 请求cookie中获得参数。

ZUL页面注解语法与Java注解语法_第4张图片

5、@ExecutionParam("keyString")

描述:传递一个方法的参数,可以应用到@Init方法和command方法上。

功能:获得当前Excursion设置的Attribute值。

ZUL页面注解语法与Java注解语法_第5张图片

executionparam-inner.zul:


ZUL页面注解语法与Java注解语法_第6张图片

6、@ExecutionArgParam("keyString")

描述:传递一个方法的参数,可以应用到@Init方法和command方法上。

功能:获得当前Execution的argument

ZUL页面注解语法与Java注解语法_第7张图片

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值查找组件。

ZUL页面注解语法与Java注解语法_第8张图片

【通过标签名"label",取得所有Label组件】

ZUL页面注解语法与Java注解语法_第9张图片

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
}
ZUL页面注解语法与Java注解语法_第10张图片

10、@Default(“defaultValue”)

描述:传递一个方法的参数,可以应用到@Init方法和command方法上。

功能:当绑定参数为空时使用指定的默认值。可以将该注解应用在其他参数相关注解之后,如果第一个注解取到空,则使用该注解指定的默认值。

点击第一个按钮,arg2为100;点击第二个按钮,arg为3。

四、@Wire

ZUL页面注解语法与Java注解语法_第11张图片

你可能感兴趣的:(ZK)