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注解语法相关推荐
- java获得jsp的name注解_记录Java注解在JavaWeb中的一个应用实例
概述 在学习注解的时候,学了个懵懵懂懂.学了JavaWeb之后,在做Demo项目的过程中,借助注解和反射实现了对页面按钮的权限控制,对于注解才算咂摸出了点味儿来. 需求 以"角色列表&quo ...
- java 方法注解_使用Java注解不正确的方法
java 方法注解 几乎没有什么@Deprecated没有适当的文档看到@Deprecated方法更令人生气的了. 我感到失落. 我应该仍然使用该方法吗? 可能这不是开发人员的意图,这就是为什么他/她 ...
- Java使用继承的语法是,Java基础语法八 继承
1.超类和子类 超类和子类 父类与子类 多态: 一个对象变量可以指示多种实际类型的现象称为多态 一个变量可以引用父类对象,也可以引用其子类对象,这就是多态. 不能将一个超类的引用赋给子类变量,因为调用 ...
- js面向对象与java面向对象的区别,被坑了,js语法跟Java面向对象语法还是有区别的...
请见代码,实现功能是要点表格当前行里的删除链接,直接删除当前行,并且删到最后一行的时候,把包含当前table的div直接隐藏了. function delCurrentTr(){ //这两句一定要写在 ...
- 夯实Java基础系列15:Java注解简介和最佳实践
Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...
- 彻底掌握 java 注解
注解就是java程序中一种特殊的注释,不要把注解想的那么复杂,它就是注释而已,注解本身不会对程序的代码逻辑造成任何影响. 在学java类与对象时,有关方法覆写那里,你可能会看到下面这样的代码: cla ...
- java注释和注解_注释注解JAVA注解
发一下牢骚和主题无关: package anno; import java.lang.annotation.Retention; import java.lang.annotation.Retenti ...
- java 注解继承注解_Java注解合并,注解继承
spring中有时候一个类上面标记很多注解. 实际上Java注解可以进行继承(也就是把多个注解合并成1个) 比如说SpringMVC的注解 @RestController @RequestMappin ...
- 【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )
文章目录 一.注解处理器 依赖 编译时注解 二.设置 注解处理器 支持的注解类型 三.设置 注解处理器 支持的 Java 版本 四.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 ...
- 【Java 注解】自定义注解 ( 使用注解实现简单测试框架 )
文章目录 一.定义注解 二.使用注解 三.解析注解 在 [Java 注解]自定义注解 ( 注解属性定义与赋值 ) 博客中讲解了 注解属性 ; 在 [Java 注解]自定义注解 ( 元注解 ) 博客中讲 ...
最新文章
- 字符串的全排列和组合算法
- MySql 长时间读数据发生超时的异常 Mysql Reader Exception TimeOut expired
- Strut2判断是否是AJAX调用
- jvm在不同系统中的最大内存空间地址
- .NET项目发布网站具体步骤和注意事项
- Android 自定义操作成功的loading动画
- Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present(LIS)
- 工程流体力学笔记暂记35 (平板层流边界层和平板混合边界层)
- ESP8285 ESP-AT编译流程和操作步骤
- system verilog语法(一)
- QC1.0、QC2.0、QC3.0、QC4.0协议介绍
- 假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母
- 小程序switch内部加上文字_干货 | 微信小程序教程:写一个能自定义尺寸、样式的switch...
- ios 开发 flurry 资料
- LeetCode,无它,唯手熟尔(一)
- 你知道豆瓣电影是怎么评分的吗?(实战篇—手把手教你分析豆瓣电影)
- 高新技术企业减税新增政策
- python如何计算概率事件_怎样用Python实现统计、概率、机器学习基础实验?一文看懂...
- Windows Style Builder颜色模块的ColorizationColor值问题
- 2021-2027全球及中国G Suit营销软件行业研究及十四五规划分析报告