`

ZK 学习

    博客分类:
  • Java
 
阅读更多

ttp://www.docin.com/p-193551031.html

 

 

安装 Eclipse  的 ZK 插件 :

 

在官网下载 ZK Studio 

 

需要注册  用户名 :  jxwuao

 

http://www.zkoss.org/download/zkstudio.dsp

 

 

得到压缩文件  zkstudio_1.0.1_galileo.zip

 

打开  Eclipse ,

 

help-》install new software 填写name:zk location: 附件zk studio 0.9.6即zk5.0 配置成功

全部将要用时:10-20分钟

zk使用需要注册

 

 

安装成功后 , 会有 示例 工程  ZKS  。

 

 

zk的数据绑定

 

数据绑定是一种机制,在UI组件和数据源之间自动完成数据复制的底层基础实现。(Da

ta binding is a mechanism that automates the data-copy plumbing codes between UI components and the data source)。应用程序开发人员只需要告诉数据绑定管理器(data -binding manager)关于UI组件和数据源的联系即可。然后,数据绑定管理器会自动完成加载(将数据从数据源加载至UI组件)并保存(将数据从UI组件保存至数据源)工作。

 

通过在页面顶部定义页面初始化来建立数据绑定管理器。

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>

 

此时, 就自动建立了数据到页面组件 的绑定 。

 

页面 :

 

 

	<listbox rows="10" model="@{mainCtrl.model}"
		selectedItem="@{mainCtrl.selected}">
		<listhead>
			<listheader label="Name"/>
			<listheader label="Title"/>
		</listhead>
		<listitem self="@{each=person}">
			<listcell label="@{person.name}" />
			<listcell label="@{person.title}" />
		</listitem>
	</listbox>

 

 

后台 :

 

	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);
		comp.setVariable(comp.getId() + "Ctrl", this, true);

		model.add(new Person("Brian", "Engineer"));
		model.add(new Person("John", "Tester"));
		model.add(new Person("Sala", "Manager"));
		model.add(new Person("Peter", "Architect"));

		titleModel.add("Engineer");
		titleModel.add("Tester");
		titleModel.add("Manager");
		titleModel.add("Architect");
	}

 

 

如果不在页面顶部声明, 也可以通过程序中建立数据绑定对象来进行数据的绑定 。

 

 

	AnnotateDataBinder binder;

	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);
		comp.setVariable(comp.getId() + "Ctrl", this, true);

		model.add(new Person("Brian", "Engineer"));
		model.add(new Person("John", "Tester"));
		model.add(new Person("Sala", "Manager"));
		model.add(new Person("Peter", "Architect"));

		titleModel.add("");
		titleModel.add("Engineer");
		titleModel.add("Tester");
		titleModel.add("Manager");
		titleModel.add("Architect");

		binder = new AnnotateDataBinder(comp);
		binder.loadAll();
	}
 

 

 

 

最后的代码 :

 


        binder = new AnnotateDataBinder(comp);
        binder.loadAll();

 

绑定 。 

 

 

 

 

ZK  用注解传递排序字段, 实现排序控制

目前系统的框架是在组件标签中定义注解来传递排序的字段名称, 然后在分页框架中获得排序字段, 利用ZK框架触发的排序事件,重新查询数据库实现排序的。

页面中的写法:

 

<listheader label="开始日期" sort="auto" self="@{sort(beginDate)}" align="center" width="12%" />

 

这里我们使用了 self 属性来写注释,详细用法见开发参考手册, 或者:


http://sunflowers.iteye.com/blog/796542


你可以通过为一个名为self 的特定属性指定注释表达来注释一个组件。

 

<listitem self="@{bind(each=person)}"/>

 

self 为一个关键字,表示注释被用于注释组件声明,而不是任何属性。换言之,等价于

 

<a:bind each="person"/>

 

sort="auto" 属性表明这个列头可以触发排序事件。

 

在我们系统的框架中, 通过ZK的得到注释, 也就是排序字段

 

Annotation ann = header.getAnnotation("sort");
                    if (ann != null)
                    {
                        String orderBy = ann.getAttribute("value");
                        orderablePagination.removeAllSorters();
                        String sortDirection = column.getSortDirection()
                        if ("ascending".equals(sortDirection))
                        {
                            orderablePagination.addSorters(Sorter.asc(orderBy));
                        }
                        else if ("descending".equals(sortDirection) || "natural".equals(sortDirection) || StringUtils.isBlank(sortDirection))
                        {
                            orderablePagination.addSorters(Sorter.desc(orderBy));
                        }
                        executeQueryOnPaging();
                    }


 

用定义的排序类 Sorter 设置好排序规则, 查询数据库重新排序。

分享到:
评论

相关推荐

    zk学习开发

    【ZK学习开发】 ZK是一个基于Java的轻量级MVC框架,专注于构建富客户端用户界面,尤其在Web应用中表现出色。它的设计目标是简化UI开发,提供直观、高效的用户交互体验,同时保持服务器端的高效处理能力。ZK通过事件...

    ZK_学习总结 ZK学习的好帮手

    ZK 是一个基于组件模型的Java Web...总结,ZK学习是一个涉及环境配置、组件使用、事件处理、组件组合与自定义等多个方面的过程。通过深入理解和实践,开发者可以充分利用ZK的优势,构建高效、用户友好的Web应用程序。

    zk学习文档 学习新的框架

    在"zk学习文档"中,我们可能会接触到以下几个关键知识点: 1. **Zookeeper架构**:ZK采用主从(Leader-Follower)架构,由多个服务器节点组成一个集群。集群中的一个节点作为领导者,其他节点作为跟随者。领导者...

    zk 学习资料 第一部分

    zk 学习资料 第一部分 zk 学习资料 第一部分

    ZK 学习手册 总结版

    ZK学习总结,包括API、开发手册、讨论区网址等,适合新手学习

    zk 学习资料 第二部分

    zk 学习资料 第二部分

    zk学习教程

    ### zk学习教程知识点详解 #### 一、ZK技术概述 **ZK**是一种先进的Web应用开发框架,它以AJAX/XUL/Java为基础,专为简化Web应用开发流程而设计。ZK的核心优势在于其能够使Web应用的开发过程如同桌面应用那样直观...

    zk学习文档

    ### zk学习文档知识点详解 #### 一、简介 **ZK**是一种先进的开源框架,用于构建高度交互式的网络应用程序。它结合了服务器端组件模型与客户端JavaScript的强大功能,从而简化了开发过程,使得开发者能够专注于...

    ZK 学习总结

    **Zookeeper 概述** ...通过阅读《ZK 学习总结第一阶段.doc》文档,你可以更深入地了解 Zookeeper 的核心概念、工作原理以及在分布式系统中的实际应用,为成为熟练掌握 Zookeeper 的 IT 专业人士奠定基础。

    zk框架学习

    ### ZK框架学习知识点 #### 一、ZK框架简介 ZK框架是一个采用Java语言编写的强大且简便的表现层框架。它最显著的特点之一是内置了基于Ajax的事件驱动引擎,这使得开发者无需编写任何JavaScript代码即可实现复杂的...

    ZK_学习教程

    【ZK学习教程】 ZK是一个基于Java的开源企业级应用框架,专为构建富客户端用户界面而设计。它的核心是提供一个简单易用、高效且功能强大的组件模型,使得开发者能够快速创建出具有丰富交互性的Web应用。ZK框架通过...

    ZK.rar_zk_zk study

    【描述】中的“ZK学习必看,pdf的找到很不容易,可以在手机上看了”表明这份资料对于学习ZooKeeper非常重要,可能是某位专家或社区精心整理的教程,且PDF格式使得它便于在各种设备上阅读,包括手机,强调了这份资料...

    ZK+学习总结第一阶段参考.pdf

    在深入探讨ZK学习总结之前,我们先了解一下ZK是什么。ZK是一个开源的轻量级Java框架,专为构建富客户端用户界面而设计。它提供了丰富的组件库,简化了Web应用的开发,并且强调了零脚本的编程模型,使得开发者能够更...

    ZK框架学习总结.pdf

    在ZK框架的学习中,首先需要了解的是ZK的基本概念和架构。ZK框架提供了一种声明式的方法来创建和管理Web界面,这大大降低了开发复杂性的门槛。ZUML类似于HTML,但更专注于UI的交互性,允许开发者定义组件的属性、...

    zk_studio0.9.3

    标签 "zk studio 0.9.3 帮助 plugin" 强调了这个版本的 ZK Studio 插件对于学习和辅助开发的重要性。"help" 暗示这些文件可能包含了使用 ZK Studio 的指南和文档,而 "plugin" 明确指出这是一个扩展 Eclipse 功能的...

    ZK学习资源

    NULL 博文链接:https://419443161-qq-com.iteye.com/blog/725689

    ZK资料学习zk框架的助手

    本资料包是针对ZK框架的学习资源,旨在帮助用户深入理解和掌握ZK在实际应用中的使用。 ZK的核心设计理念是“简单、快速、正确”,它采用类Zookeeper协议,提供了一个高可用、高性能、分布式的数据存储和通信机制。...

    Manual_ZKAccess3.5_ManualZK_zk_

    总的来说,《ZKAccess3.5》手册是一份全面的ZK学习资料,无论你是初学者还是有经验的开发者,都能从中获得宝贵的指导。通过深入学习并实践手册中的内容,你将能够充分利用ZK SDK的潜力,创建出高效、优雅的Java...

    zk 6 学习资料

    ZK 6 学习资料是一套全面的资源集合,专为想要深入理解和掌握ZK 6框架的开发者设计。ZK是一个Java为基础的用户界面(UI)框架,它简化了构建富互联网应用程序(RIA)的过程,特别是对于企业级应用。这个压缩包包含了...

    zk框架入门学习

    zk框架的入门介绍,刚开始学习和接触zk框架的伙伴可以看看,不错的资料

Global site tag (gtag.js) - Google Analytics