首先需要配好spring的配置文件,加载对zk的支持,可参考另一篇文章。
page.zul页面:
<!--读取国际化资源文件-->
<?taglib uri="WEB-INF/tld/web/core.dsp.tld" prefix="c"?>
<!--支持spring的管理-->
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<!--跟后台控制类的绑定,比如组件、集合等,arg0指明绑定组件的id-->
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="./anw" ?>
<zk xmlns="http://www.zkoss.org/2005/zul"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">
<!--指明后台控制类的spring代理bean为:anwCtrl-->
<window id="anw" apply="${anwCtrl}"
title="${c:l('label.pro.anwCfg')}" border="normal">
<groupbox mold="3d">
<caption label="${c:l('lable.result')}"
image="image/result.gif">
<button id="add" label="${c:l('button.add')}" />
<button id="edit" label="${c:l('button.update')}" />
<button id="delete" label="${c:l('button.delete')}" />
</caption>
<listbox id="listbox_anw" checkmark="true" multiple="true"
model="@{anwCtrl.anw_list}" mold="paging" pageSize="10">
<listhead>
<listheader label="${c:l('label.anw.name')}" />
<listheader
label="${c:l('label.anw.description')}" />
<listheader label="id" visible="false" />
</listhead>
<listitem self="@{each=one}" value="@{one}">
<listcell label="@{one.name}" />
<listcell label="@{one.description}" />
<listcell label="@{one.id}" visible="false" />
</listitem>
</listbox>
</groupbox>
</window>
</zk>
后台控制类AnwCtrl.java:
@Controller("anwCtrl")
@Scope("prototype")
public class AnwCtrl extends GenericForwardComposer{
private final Log log = LogFactory.getLog(getClass());
//组件变量名与page.zul的组件id相对应
private Listbox listbox_anw;
private Textbox tbox_name,tbox_descrip;
@Resource
private AnwService anwService;
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
//getAnw_list对应page.zul中listbox的model="@{anwCtrl.anw_list}"
public List<Anw> getAnw_list() {
list = anwService.getAnwService();
}
public void onClick$edit() {
if (1 == listbox_anw.getSelectedCount()) {
Listitem item = listbox_anw.getSelectedItem();
Anw e = (Anw) item.getValue();
Map map = new HashMap();
map.put("selected", e);
//在新窗口打开anw_dialog.zul,并向其传递参数map
PageUtil.createModelWindow(Page.CONTAINER_RIGHT,
Page.ANGWATTR_DIALOG, map);
}
}
//查询后刷新界面
public void onClick$query() {
List<Anw> list = anwService.queryAnw(
tbox_name.getValue(), tbox_descrip.getValue());
List<Anw> listModel = (List<Anw>) listbox_anw
.getModel();
listModel.clear();
listModel.addAll(list);
}
}
anw_dialog.zul的控制类:
@Controller("anwDialogCtrl")
@Scope("prototype")
public class AnwDialogCtrl extends GenericForwardComposer {
private final Log log = LogFactory.getLog(getClass());
private Longbox tbox_id;
private Textbox tbox_name, tbox_descrip;
//用于显示错误信息
private Label error;
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
//获取从page.zul传来的参数map,在父类GenericForwardComposer中封装为arg
if (null != arg && 0 < arg.size()) {
Anw e = (Anw ) arg.get("selected");
tbox_id.setValue(e.getId());
tbox_name.setValue(e.getName());
tbox_descrip.setValue(e.getDescription());
}
}
……
}
分享到:
相关推荐
总之,ZK-AJAX是ZK框架中的一个重要特性,用于实现Web应用与后台数据库的高效交互。通过这个CRUD实例,开发者可以学习如何利用ZK构建动态、数据驱动的应用,同时享受到ZK提供的高性能、易用性和多语言支持。"Readme....
ZK是一个基于Java的Ajax框架,它为开发人员提供了丰富的用户界面组件和高效的Ajax功能,使得创建交互式、响应迅速的Web应用变得更加简单。 **ZK框架的核心特点** 1. **事件驱动**:ZK框架采用事件驱动模型,允许...
Dubbo是一个高性能、轻量级的微服务框架,主要用于构建服务化的应用体系,提供了一套完整的RPC服务解决方案。Netty则是一个高性能的NIO框架,广泛应用于网络通信领域,支持多种协议。 **15. Dubbo与Spring Cloud的...
Ajax框架ZK是一款基于Java的富客户端框架,它利用Ajax技术增强Web应用的交互性和响应速度,无需页面刷新即可更新部分网页内容。ZK框架以其简单易用、高性能和丰富的组件库著称,广泛应用于企业级开发。在这个压缩包...
在构建分布式大数据环境时,ZooKeeper是一个至关重要的组件,特别是在结合Dubbo、Kafka、Redis和MQ等技术时。ZooKeeper是由Apache软件基金会开发的一个开源项目,它是一个高可用的分布式协调服务,用于管理分布式...
通过对这些关键技术的集成和自定义,谷粒商城构建了一个高效、可扩展的电商平台,为开发者提供了一套完整的电商系统参考案例,有助于学习和理解现代电商系统的架构设计和实现细节。通过研究这个源码,开发者不仅可以...
其中,`--partitions 1`表示该主题只有一个分区,而`--replication-factor 1`表示该主题在一个Broker上的副本数为1。 **3. 删除主题** Kafka默认情况下不支持删除主题。但从0.10.0版本开始,可以通过以下命令实现:...
- **数据库中间件**:Mycat作为一个开源的数据库中间件,位于应用程序与数据库服务器之间,可以对数据库进行分库分表操作,以解决单库单表的性能瓶颈。 - **逻辑库(schema)**:在Mycat中可以配置多个逻辑库,逻辑库...
总结来说,"中控SDK Delphi实例"是一个全面的教程,涵盖了从基础的设备连接到复杂的生物识别应用开发的全部过程。通过深入学习和实践,开发者能够掌握如何在Delphi环境下有效地利用中控SDK,创建高效、稳定的生物...
2. **Zookeeper 3.4.6**:Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能...
在IT行业中,系统间的交互和数据同步是常见的需求,Myth作为一个分布式事务框架,为解决此类问题提供了有力的支持。本文将详细介绍如何将原有的基于Legends的JOB迁移到Myth,确保业务的无缝衔接。 首先,接入Myth的...
逻辑表是在逻辑库中定义的表结构,它实际上是由多个物理表组成的一个虚拟表,用户可以像操作单一表一样操作逻辑表。 ##### 3.4 分片节点(dataNode) 分片节点是指实际存储数据的物理数据库实例,它是Mycat中数据...
ZooKeeper是一个分布式协调服务,用于解决分布式系统中常见的问题,如服务发现、配置管理、集群管理和选举机制等。它是Hadoop生态系统中的一个重要组成部分,并被广泛应用于各种分布式系统中。 ZooKeeper的主要特点...
2、开启一个单独的后台线程,每隔1分钟算出top3热门商品list 3、每个storm task将自己统计出的热数据list写入自己对应的znode中 4、task初始化 5、热门商品list保存 四、基于双重zookeeper分布式锁完成分布式...
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以通过简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...