关于apply属性使用的一些例子

来源:互联网 发布:300英雄数据 编辑:程序博客网 时间:2024/06/05 07:39

   前些天根据在ZK官网上找了些关于apply的使用例子,例子很简单。但是还是受益
匪浅。为避免忘记,做下详细的代码记录:
 
ZUL 文件:

通过指定apply的内容调用UI层的不同方法。

例1:com.ui.MyComposer  文件代码:

 

例2:com.ui.MyComposer1  文件代码:

 

 

相对于MyComposer 来说, MyComposer1 的代码更具有可读性,它将监听器作为独立的方法从doAfterCompose方法
中分离出来,但其执行的效果是相同的。这是因为MyCompser1 继承了 GenericComposer 类


例3:MyComposer2.java 文件代码:

 

 

例3相比于例2来说,代码更为简洁。它通过继承GenericAutowireComposer ,只要属性名与Id值相同
就可以自动绑定数据而不需要调用getFellow方法。

GenericAutowireComposer类中的doAfterCompose 方法会自动帮你注入匹配的值。包括Spring的bean类
如例4:

spring-config.xml  文件代码:

 

 

taskEditor.zul   文件代码:

 


TaskEditorComposer.java  文件代码

 


例5:MyComposer3.java 文件代码:

该例子是为了说明GenericAutowireComposer 类支持隐式对象,例子用"self"举例

 

例6 是例5的另一种实现。将java代码嵌套在zul文件中

例6:comp1_3.zul 文件代码:

 


例7 :  comp2.zul  文件代码

 


MyComposer4.java 文件代码:


 


MyComposer4 类继承了 GenericForwardComposer.可以通过监听器的方法名指定监听的
组件(以xx$xx的方式),不需要在zul文件中指定 “forward” 属性


例8 :实际应用中,当你不得不实现其他接口,继承其他的类时,你可以使用以下方式以达到例6的效果

MyComposer5.java 文件代码:

 


例9 : 当需要使用use 属性时

comp4.zul 文件代码:

 


MyComposer.java 文件代码: