1. zul页面读取国际化资源:
1) 准备资源:i3-label.properties(如果为制定默认该文件)、i3-label_zh_CN.properties(其中i3-label为固定格式),放在WEB-INF目录下;
2) 在zul页面头部添加如下代码
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>
3) 使用:
<label value="${c:l('label.system.name')}"/>
2. Java读取国际化资源:
import org.zkoss.util.resource.Labels;
String str = Labels.getLabel(key);
在页面中通过按钮切换语言:
Locale locale=Locales.getLocale((String)language.getSelectedItem().getValue()); //假如(String)language.getSelectedItem().getValue()为‘zh_CN’
session.setAttribute("px_preferred_locale", locale);
execution.sendRedirect(execution.getContextPath()+ "/login.zul");
3. 获取zul页面组件:
//zul:
<window id="win">
<Listbox id="lb"/>
</window>
//java:
Component component= Path.getComponent("/win/lb");
4. 数据绑定管理器重复绑定的异常处理:
在执行代码:
Executions.createComponents(newZulUri, parentWin, null);
时,parentWin所在zul页面使用了数据绑定功能(当前页没有):
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
执行时出现异常:
"
org.zkoss.zk.ui.UiException: Page is already covered by another Data Binder. Cannot be covered by this Data Binder again."
----解决:这是由于数据绑定管理器没有指定目标组件,如果有多个parentWin页面同时使用数据绑定管理器的话将会出现重复绑定的情况(具体原因还没搞清,欢迎高手指点:)。因此可以为每个使用数据绑定的页面添加绑定目标:
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./win"?>
<window id="win">
5. 如何让Messagebox.show()事件生效:
在WEB-INF/zk.xml中有以下配置:
<system-config>
<disable-event-thread>true|false</disable-event-thread>
</system-config>
[Default: true (disabled) for ZK 5 ad later; false (enabled) for ZK 2.x and 3x]
引用
It specifies whether to disable the use of the event processing thread. If disabled, no event processing thread will be used at all. In other words, all events are processed in the same thread that serves HTTP request (so called Servlet thread) directly.
For better performance (and better compatible with other frameworks), it is recommended to disable the use of the event processing thread. For more information, please refer to ZK Developer's Reference.
Enable the event thread only if the project does not need to integrate other frameworks (such as Spring), uses Messagebox and modal windows a lot, and does not have a lot of concurrent users.
如果设置为true,则Messagebox.show()需要添加事件监听器参数,如:
Messagebox.show("Remove record?", "Question", Messagebox.OK
| Messagebox.CANCEL, Messagebox.QUESTION,
new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
if (((Integer) event.getData()).intValue() == Messagebox.OK) {
System.out.println("Messagebox.OK selected!");
return;
} else {
System.out
.println("Messagebox.CANCEL selected!");
return;
}
}
});
6. 给弹出窗口设置参数:
例如:
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();
取值方式1:窗口弹出后读取参数需要写在渲染方法public void afterCompose() {}中,如:
hostGroupId = (String) Executions.getCurrent().getArg().get("hostGroupId");
取值方式2:
Window viewWin = (Window) Executions.createComponents(
"pages/reportView.zul", IndexWin.this, argMap);
java类中:
Map argMap = this.getDesktop().getExecution().getArg();
7. 其它技术点:
引用
1,修改zk中默认字体大小
2,zk中添加网站头像(即favicon.ico)
3,borderlayout布局组件的使用
4,自定义宏的使用
5,tree组件的使用
6,grid的使用,以及偶数行着色显示
7,forward属性的使用
8,基于注解的数据绑定
1)org.zkoss.zkplus.databind.AnnotateDataBinderInit类的使用
2)zk注解中类型转换器的使用(TypeConverter)
3)注解中设置别名
4)调用service,异步更新视图
以上参考:
http://zkoss.group.iteye.com/group/blog/620821
分享到:
相关推荐
从给定的文件信息来看,这是一份详细的ZK-AJAX学习笔记,记录了从准备环境、下载运行ZK到深入学习各个组件的过程。ZK是一款基于Ajax的开源Web应用框架,它允许开发者使用类似桌面应用的组件来构建Web应用,而无需...
zk学习笔记
4. **笔记**:个人笔记通常包含了开发者在学习和实践ZK过程中总结的经验和技巧,可能是解决特定问题的方法、性能优化建议或者对某些复杂概念的通俗解释。这些笔记对于初学者来说非常宝贵,能帮助他们避免常见错误,...
通过以上的Python与Zookeeper的学习笔记,我们可以全面了解如何在Python中利用Zookeeper进行分布式系统的管理和协调,并利用Xmind进行有效的知识整理和学习。无论是初学者还是经验丰富的开发者,都能从中受益,加深...
【Dubbo学习笔记】 Dubbo是一款高性能、轻量级的Java RPC框架,它旨在提供面向接口的远程方法调用、智能容错与负载均衡、服务自动注册与发现等核心功能,帮助开发者构建分布式服务架构。以下是对Dubbo基础知识、...
【HCIE-Cloud学习笔记】 华为的HCIE-Cloud认证专注于云计算领域的专业知识,涉及服务器虚拟化、云操作系统、私有云、桌面云等多个方面。在这些领域,FusionSphere是华为的核心产品,它包含了FusionCompute、...
综上所述,学习ClickHouse涉及其基本概念、数据类型、存储结构、SQL语法、副本和集群管理、查询优化等多个方面,为大数据分析提供了强大且高效的解决方案。掌握这些知识点将有助于构建和优化ClickHouse系统,实现...
### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...
【标题】"zk.rar_zk" 提供的资源是关于"北京理工大学自动化原理"研究生入学考试的辅导笔记,这个压缩包文件很可能包含了该学科的重要学习资料。自动化原理是控制科学与工程领域的一个基础课程,主要研究如何使系统...
pytorch学习笔记(十五)————动量与学习率衰减目录动量学习率衰减 目录 动量 从形式上看, 动量算法引入了变量 z充当速度角色——它代表参数在参数空间移动的方向和速率。速度被设为负梯度的指数衰减平均。名称...
《从paxos到zookeeper分布式一致性原理与实践》书的源码以及自己学习时写的demo主要包括zk原生api的使用zkCl
本篇笔记主要围绕 Sqoop 的使用场景、安装步骤以及如何配合 Hive 和 Hbase 使用进行展开。 #### 二、数据传输流程设计 最初的设计方案是通过 Sqoop 将数据从 PostgreSQL 导入到 Kafka,再通过存储程序将 Kafka 的...
A Wonderful learning-Java-Blog一套开发级JAVA设计语言学习笔记。所有笔记已更新于微信公众号<汀雨笔记>:red_heart:资源较多已同步到gitee: 2021-1-29 |:sparkles: 特性:rainbow: 鉴权-安全:gear: 操作系统:...
该文档对 Storm 的学习笔记,总结了 Storm 的架构、组件、工作流程等关键知识点。 一、Storm 架构 Storm 的架构主要由四个组件组成:Nimbus、Supervisor、Worker 和 Zookeeper。 * Nimbus:负责接收用户提交的 ...
### Zookeeper概述 Zookeeper是一种分布式协调服务框架,它的核心任务是为用户的分布式应用程序提供一系列的协调...无论是从其提供的服务还是从其内部的机制来看,Zookeeper都是值得深入学习和掌握的重要技术之一。
【Linux基础篇】 Linux是开源的操作系统,深受...总之,这份华为工程师的Linux学习笔记全面覆盖了从基础到高级的Linux知识体系,适合从零开始学习Linux的人员,也能为有一定经验的工程师提供深入学习和提升的机会。
Zookeeper的源码结构清晰,包含了客户端、服务器端、协议处理、数据模型等多个模块,学习源码可以帮助理解其工作原理。 在实际应用中,Zookeeper经常与Hadoop、HBase、Kafka等大数据组件配合使用,提供高可用性和...
第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业级自动化实战、企业级高并发...
本文档是工程师总结的Linux学习笔记,涵盖了Linux从基础入门到高级应用的全方位内容。 Linux快速入门部分主要介绍了Linux的基本概念、操作界面以及如何在虚拟机环境下进行Linux操作系统的安装。Linux发展及系统安装...
第15章到第38章学习内容分别包括:Linux性能优化、大数据量备份、Shell企业实战基础、Shell实战高级编程、自动化运维趋势、Puppet自动化运维实战、Ansible自动化运维实战、Jenkins企业级自动化实战、企业级高并发...