- 浏览: 762138 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (241)
- 个人思考 (1)
- 数据库 (5)
- java基础 (32)
- 软件工程 (2)
- zk开源框架 (15)
- 设计模式 (25)
- javascript (12)
- css (9)
- UML (2)
- CMMI软件需求 (3)
- CMMI软件设计 (2)
- CMMI软件实现 (1)
- CMMI软件测试 (1)
- 正则表达式 (4)
- 系统日志配置 (4)
- 应用服务器 (1)
- spring (7)
- XML (6)
- java web (10)
- Ajax (3)
- RichFaces (14)
- 问题 (1)
- 评论文章 (2)
- fushioncharts (2)
- MAVN (4)
- jquery (26)
- Ext js学习 (2)
- 学习心得 (2)
- CSS兼容问题 (3)
- XSL-FOP (1)
- Quartz (0)
- OSGI (1)
- spring--security (6)
- apache tools (1)
- eclispe 小技巧 (2)
- Ant (1)
- 杂记 (1)
- spring3系列 (5)
- java cache (4)
- EffectiveJava (2)
- 代码重构 (0)
最新评论
-
psz6696:
可以说是超级简单的Demo了,可惜没有演示设值注入和构造注入两 ...
模拟spring中的ClassPathXmlApplicationContext类的实现 -
ziyourJava:
[flash=200,200][img][url][list] ...
spring security进级篇 V 自定义标签控制显示 -
ztw1122:
...
zk组件开发指南(目录) -
zjysuv:
容我说一句 在座的各位都是垃圾 spring 3.2以后的@C ...
三. spring mvc 异常统一处理 -
chengwu1201:
二 基于Spring的异常体系处理
1、打开浏览器窗口常用于超链接
/** * 重新打开浏览器弹出页面 * * @param url 网络地址 * @param blank;打开类型,可以是"_blank","_self"等 */ public void onSendRedirect(String url, String blank) { Executions.getCurrent().sendRedirect(url, blank); }
例子:
if(reportInfo==null){ onSendRedirect( "/designer.zul","_self"); }else{ Executions.getCurrent().sendRedirect( "/designer.zul?reporturl=" + reportInfo.getDir() + "/" + reportInfo.getFileName(), "_self"); }
2、主窗体与弹出子窗体之间传值刷新问题
主窗体java代码
public class ListBusinessModel extends Window implements AfterCompose { private static final long serialVersionUID = 1L; public void afterCompose() { initPage(); } /** * 初始化问题 */ public void initPage() { } /** * 添加函数 */ public void add() { try { AddBusinessModel wnd = (AddBusinessModel) Executions.createComponents( "/pages/systemManage/business/addBusinessModel.zul", ListBusinessModel.this, null); wnd.doModal(); } catch (SuspendNotAllowedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 修改函数 */ public void edit() { try { Treeitem item = ((Tree)getFellow("tree")).getSelectedItem(); if(item==null||item.getParentItem()==null){ Message.showInfo("请选择一个业务模型."); }else{ BusinessModel model = irbm.getBusiModel(item.getId()); Map map = new HashMap(); map.put("bmodel", model); map.put("dsId", item.getParentItem().getId()); EditBusinessModel wnd = (EditBusinessModel) Executions.createComponents( "/pages/systemManage/business/editBusinessModel.zul", ListBusinessModel.this, map); wnd.doModal(); } }catch (SuspendNotAllowedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
添加窗体代码,注意如何刷新主窗体
public class AddBusinessModel extends Window implements AfterCompose { private static final long serialVersionUID = 1L; /* (non-Javadoc) * @see org.zkoss.zk.ui.ext.AfterCompose#afterCompose() */ public void afterCompose() { initPage(); } /** * 初始化函数 */ public void initPage() { } /** * 保存函数 */ public void save() { //do something this.refresh(); this.detach(); } /** * 刷新函数 */ public void refresh() { ListBusinessModel bmWn = (ListBusinessModel)this.getParent(); bmWn.initPage(); } }
修改窗体,观察如何传值和接受值
public class EditBusinessModel extends Window implements AfterCompose { private static final long serialVersionUID = 1L; //参数的获取方法 String dsId = (String)Executions.getCurrent().getArg().get("dsId"); BusinessModel model = (BusinessModel)Executions.getCurrent().getArg().get("bmodel"); public void afterCompose() { //do something } /** * 保存 */ public void save() { //do something this.refresh(); this.detach(); } /** * 刷新 */ public void refresh() { ListBusinessModel bmWn = (ListBusinessModel)this.getParent(); bmWn.initPage(); } }
3.通过设置include对象的src属性给hostAdd.zul页面传递参数。
设置要传入的参数例如: m_includeHost .setSrc("/pages/hostMan/hostAdd.zul ?mode=wizard&hostGroupType=monitorhostgroup"); 在hostAdd.zul后台类中获取参数mode例如: String m_mode = Executions.getCurrent().getParameter("mode");
4. hostAdd.zul是通过include被加载进来的,给该页面传递一个对象
例如: m_includeHost.setDynamicProperty("wizardObject", this); 在hostAdd.zul后台类读取传入的对象例如: WebsiteWizardUi m_wizardObject = (WebsiteWizardUi) Executions.getCurrent() .getAttribute("wizardObject");
5.给弹出窗口设置参数
例如: Map<String, String> arg = new HashMap<String, String>(); arg.put("hostGroupId", hostGroupId); arg.put("hostGroupType", hostGroupType); Window wnd = (Window) Executions.createComponents("/pages/hostMan/hostAdd.zul", null, arg); wnd.doModal(); 窗口弹出后读取参数需要写在渲染方法public void afterCompose() {}中例如: hostGroupId = (String) Executions.getCurrent().getArg().get("hostGroupId");
或
Window viewWin = (Window) Executions.createComponents( "pages/reportView.zul", IndexWin.this, argMap); java类中 Map argMap = this.getDesktop().getExecution().getArg();
6、局部刷新问题
Include geronimoInc = (Include) Path .getComponent("//mainPage/geronimoMainWnd/geronimoInc"); String rootPath = Paths.getPagePath(); Date time = new Date(); geronimoInc.setSrc(rootPath + "/pages/JEEService/databaseManager/databaseList.zul?" + time.getTime());
7.添加监听方法
方法1
this.addEventListener("onOK", new EventListener() { public void onEvent(Event e){ matchBeforAdd(); }});
方法2
使用org.zkoss.zk.ui.Component接口中的addEventListene和removeEventListener方法 来动态地添加或移除事件监听器。 如下所示,动态添加的事件监听器必须实现org.zkoss.zk.ui.event.EventListener接口。 void init(Component comp){ ... comp.addEventListener("onClick", new MyListener()); ... } class MyListener implements org.zkoss.zk.ui.event.EventListener { public void onEvent(Event event) throws UiException{ //事件处理 } }
8、转到另一个servlet
例如: Executions.sendRedirect("/welcome"); 在web.xml里面定义该serverlet 例如: <servlet> <servlet-name>welcome</servlet-name> <servlet-class> com.cvicse.inforguard.common.context.WelcomeServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>welcome</servlet-name> <url-pattern>/welcome</url-pattern> </servlet-mapping> com.cvicse.inforguard.common.context.WelcomeServlet类定义为: /* * 把请求导向首页面index.zul */ public class WelcomeServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { if (req != null && req.getSession() != null && req.getSession().getAttribute(AuthenticationFilter.USER_KEY) != null && req.getSession().getAttribute(AuthenticationFilter.USER_KEY).equals("anonymity")){ req.getSession().removeAttribute(AuthenticationFilter.USER_KEY); } RequestDispatcher rd = req.getRequestDispatcher("/pages/index.zul"); rd.forward(req, res); } }
9.两个并列组件间的空隙
<vbox spacing="5em"> 表示两个要排列的组建之间的间隙
<textbox width="100px"/>
<datebox width="100px"/>
</vbox>
10.Hbox/Vbox设置内部组件占位
<hbox width="100%" widths="10%,20%,30%,40%"> widths用逗号隔开并列的各组件占的宽度
<vbox height="100%" heights="10%,20%,30%,40%"> heights用逗号隔开并排的各组件占的高度度
11.borderlayout中子组件自适应大小
<borderlayout>组件flex属性设置为"true" 则该组件下子组件可自适应大小
12.grid组件设置
grid组件可以通过设置span属性使某一个格子占多列。 如:设置span="2,1,1",grid为四列,
则此行第一格子占两列。
13.listbox组件设置高度用rows比height好
listbox用设置rows属性来设置组件的高度可以避免listbox渲染时的闪动
14.转换字符编码格式的方法
String childtype = new String(Executions.getCurrent().getParameter("type")
.getBytes("UTF-8"), "GBK");
发表评论
-
采用java.util.concurrent.Semaphore 类实现对资源限制访问量
2010-10-27 14:59 1953package com.citicbank.vipfund.w ... -
zk中message的封装
2009-06-14 16:23 1967最近,用zk的message老感觉填写东西很麻烦,就对它做了此 ... -
zk如何调用本地javascript代码向服务器端发送数据
2009-06-11 20:55 4845今天,折腾了一个上午,加下午1个小时,终于实现了zk页面中,如 ... -
使用zk的bandbox和listbox实现的一个具有搜索功能的combobox(实现后台分页)
2009-06-10 14:37 3946在图片附件中有效果图,可以先看一下. 先说下来由:因 ... -
试着用zk结合hibernaet实现分页查询
2009-06-10 14:14 2650原文:http://www.iteye.com/topic/2 ... -
根据sql查询实现zk Listbox翻页显示数据
2009-06-10 14:07 2402最近一直在研究如何封装zk的Listbox,实现简单的 ... -
zk中定义布局模版实现
2009-06-02 23:03 3095在项目的开发过程中,有些布局是固定的,为了布局的统一,通常会制 ... -
zk中动态产生多个组件的实现
2009-06-02 22:34 3478zk动态产生多个页面的例子代码: /** * * ... -
zk框架中常见问题的解决续
2009-06-02 21:02 30751、局部刷新 /** * 刷新页面* */ ... -
zk中zul页面中组件的id和java类中的变量绑定实现
2009-06-01 21:58 7097zul 页面 index.zul <?xml ver ... -
zk组件开发指南(3)
2009-06-01 21:01 50703.展现层 在客户端,展 ... -
zk组件开发指南(2)
2009-06-01 20:52 43102. 句柄Handle 句柄是运行在服务器端可以被应 ... -
zk组件开发指南(1)
2009-06-01 20:09 37861.简介 ... -
zk组件开发指南(目录)
2009-06-01 19:40 2802声明:本人翻译水平有限,有误之处请多指教。 ...
相关推荐
ZK的官方文档和社区是获取最新信息、解决技术问题的重要资源。了解文档的来源和贡献者可以帮助你更深入地理解ZK的技术细节。 总之,ZK不仅是一个强大的Ajax框架,更是一套完整的Web开发解决方案。从环境搭建到应用...
在这个"ZK开发文档中文HTML版"中,你将找到关于如何使用ZK框架进行开发的详细指南。 首先,文档会介绍ZK的基本概念,包括组件系统、事件处理和布局管理。ZK的组件库丰富,涵盖了各种常见的UI元素,如按钮、表格、树...
ZK框架提供了丰富的组件,如ListBox和Grid等,组件与数据的绑定是开发ZK应用时的常见需求。例如,在ListBox组件中可以绑定一个数据集合,并且利用ZK提供的方法来动态更新ListBox的内容。同样,在Grid组件中也可以...
《ZK™: Ajax Without JavaScript™ Framework》这本书提出了一个创新性的解决方案——ZK框架,它能够在不依赖客户端JavaScript的情况下实现Ajax功能。 #### 二、ZK框架简介 **ZK框架**由Potix Corporation开发,...
通过扩展ZK主题,开发者可以创建独特且一致的用户体验,同时保持与ZK框架的兼容性。 "ZK主题扩展工具.zip"这个压缩包文件显然包含了用于扩展ZK主题的相关资源和工具。这可能包括CSS样式表、图片资源、JavaScript...
**ZK框架**: ZK是一个基于组件的Java AJAX框架,专门用于构建富客户端用户界面。它简化了创建交互式Web应用的过程,无需深入学习JavaScript或浏览器兼容性问题。ZK的核心特性包括事件驱动、服务器端渲染和组件模型...
11. **错误处理和调试**:学习如何识别和解决ZK应用中的常见错误,以及使用ZK提供的调试工具进行问题排查。 12. **扩展与定制**:了解如何自定义组件、扩展ZK功能,以及如何编写插件来满足特定需求。 13. **最佳...
4. **笔记**:个人笔记通常包含了开发者在学习和实践ZK过程中总结的经验和技巧,可能是解决特定问题的方法、性能优化建议或者对某些复杂概念的通俗解释。这些笔记对于初学者来说非常宝贵,能帮助他们避免常见错误,...
"ZK快速指南"作为一份入门级教程,旨在帮助开发者快速掌握ZK框架的核心概念、基本操作以及常见用法,从而能够迅速上手并应用到实际项目中。 ### ZK框架概述 ZK框架的核心优势在于其对组件化编程的支持。它将Web...
《Zookeeper源码解析——基于zk-src-5.0.7.1》 Apache ZooKeeper,简称ZK,是一款开源的分布式协调服务,它为分布式应用...在实际开发中,结合源码分析可以更好地解决遇到的问题,提升系统性能,保障服务的稳定运行。
最后,手册通常会包含一系列示例代码和实战教程,帮助开发者快速上手并解决实际问题。这些示例涵盖了常见的应用场景,如表格操作、表单验证、图表展示等,让读者能够更好地理解和掌握ZK SDK的用法。 总的来说,...
**ZK框架** ZK是一款基于组件的Java富客户端用户界面框架,专门用于构建富互联网应用程序(RIA)。ZK通过事件驱动模型和服务器端渲染,简化了UI的开发,开发者无需处理JavaScript和浏览器兼容性问题。ZK的核心特性...
在IT行业中,分页查询是数据库操作中常见且重要的功能,特别是在大数据量的场景下,有效地分页可以显著提升用户体验并降低服务器负载。本话题将探讨如何利用Zookeeper(zk)与Hibernate结合来实现分页查询。...
在分布式服务框架中,Dubbo与Zookeeper的结合使用是非常常见的一种架构模式。本示例"**dubbo-demo(ZK集群).zip**"提供了如何在实际项目中搭建和使用Dubbo与Zookeeper集群的实例。下面我们将深入探讨这两个组件的...
常见的序列化框架包括Hessian、ProtoBuf、Thrift等。 开发一个简化的RPC框架需要进行以下步骤: - 设计远程服务接口与本地存根(Stub),使得调用远程服务就像调用本地方法一样简单。 - 实现服务的注册与发现机制...
7. **故障排查**:列出常见的问题和解决方案,帮助开发者诊断和修复遇到的问题。 8. **案例研究**:展示ZooKeeper在实际项目中的应用,比如Hadoop、Kafka等大数据框架如何依赖ZooKeeper进行协调。 综合来看,"zk....
ZK 是一款用于构建高性能 Web 应用程序的开源框架。它提供了一种简单而强大的方式来创建丰富的用户界面,无需编写复杂的 JavaScript 代码。该框架的核心优势在于其能够实现服务器端驱动的 UI 更新,从而减少了网络...
通过上述知识点的详细介绍,我们可以看到ZK不仅提供了一套完整的Web应用开发解决方案,还针对常见的开发需求提供了丰富的功能和工具。对于开发者来说,理解和掌握这些基本概念和技术是进行高效开发的基础。
"可能表明这是一个针对Delphi初学者或者开发者遇到问题时寻求帮助的资源,它可能包含了解决常见问题的代码示例或解决方案。"zk accesscontrol"可能是指使用了ZK(ZK Framework)进行界面开发,并且与访问控制有关,...