前些天根据在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 文件代码: