- 浏览: 752624 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 1916package com.citicbank.vipfund.w ... -
zk中message的封装
2009-06-14 16:23 1933最近,用zk的message老感觉填写东西很麻烦,就对它做了此 ... -
zk如何调用本地javascript代码向服务器端发送数据
2009-06-11 20:55 4807今天,折腾了一个上午,加下午1个小时,终于实现了zk页面中,如 ... -
使用zk的bandbox和listbox实现的一个具有搜索功能的combobox(实现后台分页)
2009-06-10 14:37 3910在图片附件中有效果图,可以先看一下. 先说下来由:因 ... -
试着用zk结合hibernaet实现分页查询
2009-06-10 14:14 2602原文:http://www.iteye.com/topic/2 ... -
根据sql查询实现zk Listbox翻页显示数据
2009-06-10 14:07 2369最近一直在研究如何封装zk的Listbox,实现简单的 ... -
zk中定义布局模版实现
2009-06-02 23:03 3041在项目的开发过程中,有些布局是固定的,为了布局的统一,通常会制 ... -
zk中动态产生多个组件的实现
2009-06-02 22:34 3438zk动态产生多个页面的例子代码: /** * * ... -
zk框架中常见问题的解决续
2009-06-02 21:02 30381、局部刷新 /** * 刷新页面* */ ... -
zk中zul页面中组件的id和java类中的变量绑定实现
2009-06-01 21:58 7027zul 页面 index.zul <?xml ver ... -
zk组件开发指南(3)
2009-06-01 21:01 50233.展现层 在客户端,展 ... -
zk组件开发指南(2)
2009-06-01 20:52 42552. 句柄Handle 句柄是运行在服务器端可以被应 ... -
zk组件开发指南(1)
2009-06-01 20:09 37331.简介 ... -
zk组件开发指南(目录)
2009-06-01 19:40 2758声明:本人翻译水平有限,有误之处请多指教。 ...
相关推荐
ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 中文技术文档ZK框架 ...
zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架
zk框架中的一些注解使用,项目中的需要用到的,各位可以了解一下,希望可以帮到大家!今后可以多交流,相互学习,共同进步。
zk是一个以java为后台的web框架,扩展性好,支持javascript等脚本
ZK框架开发手册 ZK 7.0.5 Developer's Reference.pdf ZK框架开发手册 ZK 7.0.5 Developer's Reference.pdf
zk框架开发中遇到的错误整理
zk框架开发中遇到的错误整理
水电费水电费水电费水电费水电费水电费水电费是的发送到发送到方式的方式的
ZK框架学习总结.pdf
ZK资料学习zk框架的助手,带你步入zk的殿堂。。。。。
现在zk是一个刚刚兴起的框架,网络上关于zk框架的资源还是很少的,我学习这个碰到了不少的问题,不过还是慢慢的解决了,上传我的运用zk框架基于java的一个web学生管理系统开发给大家参考,希望能对学习zk框架的朋友...
ZK框架官方API,目前国内很少有这方面的资料!
ZK框架 : Ajax开发实战1.rar
zk后台api很全的,对于学习ZK很有用的。
ZK框架:Ajax开发实战.pdf ZK框架:Ajax开发实战.pdf
ZK框架是一个用JAVA实现的简单但是功能强大的表现层框架。它包括了一个基于Ajax的...组件是ZK中最常见的元素。有点类似于JAVA Swing或者VB这样的基于组件的编程。结合ZK Studio,可以达到可视化和动态地查看页面效果。
zk框架的demo,ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用。ZK提供基于XUL的标记语言和事件驱动的组件,可以让你像开发桌面应用程序一样简单。
zk框架开发帮助文档
zk框架的入门介绍,刚开始学习和接触zk框架的伙伴可以看看,不错的资料