zul 页面 index.zul
<?xml version="1.0" encoding="UTF-8"?>
<zk>
<window title="zk使用apply属性关联后台Java类" border="normal"
apply="com.civcse.main.MainLayoutComposer" width="300px">
<vbox>
<label id="resultLab" value="默认值" />
<textbox id="inputTextbox" />
<button id="runButton" label="运行" />
</vbox>
</window>
</zk>
在window组件里面使用apply属性关联到后台java类。
方法1:继承 GenericForwardComposer 抽象类
package com.civcse.main;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
public class MainLayoutComposer extends GenericForwardComposer {
/**
* zul组件对象映射
*/
private Label resultLab;
private Textbox inputTextbox;
/*
* (non-Javadoc)
*
* @see org.zkoss.zk.ui.util.GenericForwardComposer#doAfterCompose(org.zkoss.zk.ui.Component)
*/
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp); // 必须的,作用:变量和页面中zk组件绑定进行初始化变量
System.out.println("渲染后执行自定义初始化");
}
/**
* onClick$runButton
* onClick=事件名称
* runButton=对应的Component id
* $必须的!
*/ public void onClick$runButton() {
System.out.println("button click 事件");
if (!inputTextbox.getText().trim().equals("")) {
resultLab.setValue(inputTextbox.getText());
}
}
}
创建过程:1 新建类 MainLayoutComposer 继承 抽象类GenericForwardComposer;
2 手动添加方法public void doAfterCompose(Component comp) throws Exception {},重写抽象类中的方法;
3 在doAfterCompose(Componet comp)方法中必须使用super.doAfterCompose(comp); 初始化和zul页面组件关联的属性。
说明:1 把变量绑定到zk组件,变量名必须和zk组件id同名;
2 事件绑定格式"事件$zk组件id" 例如onClick$runButton onClick=事件名称, runButton=对应的Component id $必须的!
方法2:实现接口org.zkoss.zk.ui.util.Composer
package com.cvicse.main;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.Composer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
public class MyComposer implements Composer {
/**
* zul组件对象映射
*/
private Label resultLab;
private Textbox inputTextbox;
/*
* (non-Javadoc)
*
* @see org.zkoss.zk.ui.util.Composer#doAfterCompose(org.zkoss.zk.ui.Component)
*/
public void doAfterCompose(Component arg0) throws Exception {
System.out.println("init.........");
init(arg0);
}
/** 固定写法,必须有的
* @param component
*/
public void init(Component component) {
// 将当前对象的变量和参数对象进行绑定
Components.wireVariables(component, this);
// 转发一个当前的事件方法到所对应名称的Component()
Components.addForwards(component, this);
// 注册一个监听到当前的对象
Events.addEventListeners(component, this);
}
/**
* onClick$runButton
* onClick=事件名称
* runButton=对应的Component id
* $必须的!
*/
public void onClick$runButton() {
System.out.println("button点击了");
if (!inputTextbox.getText().trim().equals("")) {
resultLab.setValue(inputTextbox.getText());
}
}
说明:1 使用org.zkoss.zk.ui.util.Composer接口可以在方法doAfterCompose(Component arg0)执行渲染后的初始化;
2 init(Component component) 固定写法详细解释请看代码里的注释。init方法使button按钮发生点击事件能够执行onClick$runButton() 方法,实现了zk组件id和变量的绑定。
总结:
1. MyComposer extends GenericForwardComposer || GenericAutowireComposer然后再doAfterCompose调用父类的doAfterCompose方法,这样就不用去写init方法了!
2. zkdemo 3.5.2使用的是这种方式, zk交流论坛中都是使用方法1,如果类A要继承类B就可以考虑import Composer接口来实现数据绑定功能。
分享到:
相关推荐
整理的比较全面的zul页面注解和java注解,初学zk框架的朋友可以看看,了解注解的功能,便于框架的学习。
ZK的实现完全用java实现,开发过程中不会有任何的JavaScript代码,但是通过将zul文件(ZK的源文件,类似于jsp文件)通过ZK引擎编译后查看页面源代码,结果还是可以看到,ZK实现的本质还是通过JavaScript+CSS来处理...
自己写的zk注册例子,大家共同学习: 1.将相应的文件放到合适的位置,其中tomcat-Jndi 是在tomcat... 2.regist.zul是放置在zk项目的WebContent目录下面的。 3.java文件需要在src中建立相应的package并将其放到其中。
zul studio 安装文件 zul studio 安装文件 zul studio 安装文件 zul studio 安装文件
ZK试算表ZK Spreadsheet是一个基于Web的开源可嵌入的在线电子表格,可在使用纯Java的浏览器中提供Excel的丰富功能。 借助可嵌入的Excel功能,开发人员可以轻松创建交互式,协作和动态的企业应用程序。 较新的。 更好...
zk框架中grid复杂表头的处理,包括实现横向滚动条、列错位、列宽度定制、早期版本IE兼容性问题导致没有分割线。 建议下载官网开源demo 【zksandbox】,下载auxheader.zul替换项目中的/zksandbox/WebRoot/grid/...
为了获得正确的功能,必须在窗口元素中使用apply属性定义控制器。(请参见屏幕截图示例)如果您... 已知限制:仅建议在控制器中定义的属性,而不建议扩展类的属性。 ZKCC建议认为尚未定义getter / setter方法的属性。
zkmax.jar zkjar zkflex.jar zui.jar 全部的 ZK运行所需要的jar包,共10个: zcommon.jar、zcommons-el.jar、zhtml.jar、zk.jar、zkex.jar、zkmax.jar、zkplus.jar、zml.jar、zul.jar、zweb.jar
ZK运行所需要的jar包,共10个: zcommon.jar、zcommons-el.jar、zhtml.jar、zk.jar、zkex.jar、zkmax.jar、zkplus.jar、zml.jar、zul.jar、zweb.jar
ZK Studio 1.0.2版本。该版本的主要新特性包括: 支持Eclipse 3.7 支持标记ZUL所注释的事件,在ZUL文件中,与所选部分相同的内容将被高亮显示。
ZK Unit扩展了JUnit以测试您的ZK项目:ZUL页面,编写器,事件处理程序,约束等。 使用ZKUnit进行测试驱动的开发,以实现代码覆盖以及与连续构建系统的集成。
该项目使您能够在 Java 或 ZUL 中创建地图、图层和功能,以及服务器端事件处理和更新。下载Maven <dependency><groupId>org.zkoss</groupId><artifactId>zkopenlayers</artifactId><version>1.0.0</version></...
zui动态生成树的代码,zul对extjs的集成 他能已标签的形式 创建控件 也能在后台控制
Package org.zkoss.zk.ui.metainfo Metainfo representing pages and languages (implementation only). See: Description Interface Summary Annotation The common interface extended by all annotation ...
设计和设置:纵向数据来自社会经济Liewen zuLétzebuerg/欧洲联盟关于收入和生活条件的调查,该调查自2003年以来每年在卢森堡进行。 参与者:参与者包括727名卢森堡居民(58%的男性),2003年年龄在21至55岁之间,...
REM是用于ZK应用程序开发的NetBeans模块。 它可用于创建ZK Web应用程序,ZUL和ZScripi文档。 它支持ZUL语法突出显示,自动缩进,代码折叠,代码超链接导航和代码完成。 它支持某些组件的调色板。
一个典型的用ZK框架编写的《扫雷》游戏,其外观与Windows版本几乎相同。 源代码是紧凑的,并在单个Zul文件中编写。
Zklatihan ZK Spring Hibernate的简单宠物诊所使用的技术ZK Framework 7.0 Spring ...java -jar target / zklatihan-0.0.1-SNAPSHOT.jar 打开您喜欢的浏览器,然后访问url localhost:8080 / petcliniczk / login.zul
数据和实现均已获得许可许可证的许可,该也已在LICENSE中进行了详细说明。在AUTHORS文件中命名的作者可以授予其他许可选择。 使用用于Zulu语言的校对工具和(某些语言只能通过夜间频道使用)。 文献资料 可以在以下...
安装命令CEK YUTUB 字首/ ! # $%?\~.菲图尔一种列出Fitur :check_mark_button: 制作者 :check_mark_button: 随机的 :check_mark_button: GABUTz :check_mark_button: 其他 :check_mark_button: 下载 :check_mark_...