- 浏览: 752614 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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的异常体系处理
zk动态产生多个页面的例子代码:
/** * * @功能 添加参数 * @author 创建人 gao_jie * @date 创建日期 Apr 23, 2009 * @version 1.0 * */ public class AddParameter extends Window implements AfterCompose { private static final long serialVersionUID = 1L; private int num = 0;// 条件个数 private Window win;// 参数风格 private Rows parameterRows;// 条件行数 private DesignerWnd desiWnd = null; @SuppressWarnings("unused") private Spreadsheet spreadSheet; private InforReport inforreport; /* * (non-Javadoc) * * @see org.zkoss.zk.ui.ext.AfterCompose#afterCompose() */ public void afterCompose() { parameterRows = (Rows) this.getFellow("parameterRows"); win = (Window) this.getFellow("AddParameter"); desiWnd = (DesignerWnd) Sessions.getCurrent().getAttribute("dWnd"); spreadSheet = (Spreadsheet) desiWnd.getFellow("spreadSheet"); inforreport = spreadSheet.getReport(); this.initiPage(inforreport.getParameters()); } /** * 初始化参数页面 获取已定义的参数 现实参数的name,type,defaultValue并可改 * * @param Parameters */ @SuppressWarnings("unchecked") public void initiPage(Map Parameters) { parameterRows.getChildren().clear(); if (Parameters != null && !Parameters.isEmpty()) { // 遍历Parameters的键集 Set parametset = Parameters.keySet(); Iterator ir = parametset.iterator(); while (ir.hasNext()) { String key = (String) ir.next(); // 获取已有的每一个参数 Parameter parameter = (Parameter) Parameters.get(key); // 计数器+1 num = num + 1; // 为每个参数在parameterRows里创建一个Row Row row = new Row(); row.setId("row_" + num); row.setParent(parameterRows); // 每个Row添加一个name,赋值为当前获取参数的name Textbox name = new Textbox(); name.setId("name_" + num); name.setWidth("80px"); name.setValue(parameter.getName()); name.setParent(row); // 每个Row添加一个type,赋值为当前获取参数的type Listbox type = new Listbox(); type.setParent(row); type.setId("type_" + num); type.setMold("select"); type.appendChild(new Listitem("字符串|String", "String")); type.appendChild(new Listitem("整型|Int", "Int")); type.appendChild(new Listitem("日期|Date", "Date")); type.appendChild(new Listitem("长整型|Long", "Long")); type.appendChild(new Listitem("单精度|Single", "Single")); type.appendChild(new Listitem("双精度|Double", "Double")); type.appendChild(new Listitem("货币|Currency", "Currency")); type.appendChild(new Listitem("字节|Byte", "Byte")); type.appendChild(new Listitem("布尔|Boolean", "Boolean")); type.appendChild(new Listitem("时间|Time", "Time")); type.appendChild(new Listitem("日期时间|Datetime", "Datetime")); if (parameter.getType().contains("String")) { type.setSelectedIndex(0); } else if (parameter.getType().contains("Int")) { type.setSelectedIndex(1); } else if (parameter.getType().contains("Date")) { type.setSelectedIndex(2); } else if (parameter.getType().contains("Long")) { type.setSelectedIndex(3); } else if (parameter.getType().contains("Single")) { type.setSelectedIndex(4); } else if (parameter.getType().contains("Double")) { type.setSelectedIndex(5); } else if (parameter.getType().contains("Currency")) { type.setSelectedIndex(6); } else if (parameter.getType().contains("Byte")) { type.setSelectedIndex(7); } else if (parameter.getType().contains("Boolean")) { type.setSelectedIndex(8); } else if (parameter.getType().contains("Time")) { type.setSelectedIndex(9); } else if (parameter.getType().contains("Datetime")) { type.setSelectedIndex(10); } else { type.setSelectedIndex(0); } // 每个Row添加一个defaultValue,赋值为当前获取参数的defaultValue Textbox defaultValue = new Textbox(); defaultValue.setId("parameter_" + num); defaultValue.setWidth("80px"); defaultValue.setValue(parameter.getDefaultValue()); defaultValue.setParent(row); // 每个Row添加一个"删除"按钮,触发删除事件 Button delbtn = new Button(); delbtn.setId("delbtd_" + num); delbtn.setLabel("删除"); delbtn.addEventListener("onClick", new DelEventListener(num)); delbtn.setParent(row); } } } /** * 添加参数 */ public void addParameter() { num = num + 1; // 产生Row Row row = new Row(); row.setId("row_" + num); row.setParent(parameterRows); Textbox name = new Textbox(); name.setId("name_" + num); name.setWidth("80px"); name.setParent(row); Listbox type = new Listbox(); type.setParent(row); type.setId("type_" + num); type.setMold("select"); type.appendChild(new Listitem("字符串|String", "String")); type.appendChild(new Listitem("整型|Int", "Int")); type.appendChild(new Listitem("日期|Date", "Date")); type.appendChild(new Listitem("长整型|Long", "Long")); type.appendChild(new Listitem("单精度|Single", "Single")); type.appendChild(new Listitem("双精度|Double", "Double")); type.appendChild(new Listitem("货币|Currency", "Currency")); type.appendChild(new Listitem("字节|Byte", "Byte")); type.appendChild(new Listitem("布尔|Boolean", "Boolean")); type.appendChild(new Listitem("时间|Time", "Time")); type.appendChild(new Listitem("日期时间|Datetime", "Datetime")); type.setSelectedIndex(0); Textbox defaultValue = new Textbox(); defaultValue.setId("parameter_" + num); defaultValue.setWidth("80px"); defaultValue.setParent(row); Button delbtn = new Button(); delbtn.setId("delbtd_" + num); delbtn.setLabel("删除"); delbtn.addEventListener("onClick", new DelEventListener(num)); delbtn.setParent(row); } /** * * @功能 监听事件 "删除参数" * */ public class DelEventListener implements EventListener { int no; public DelEventListener(int no) { this.no = no; } @SuppressWarnings("unchecked") public void onEvent(Event arg0) throws Exception { // 移除才操作 win.getFellow("row_" + no).detach(); // 改变现有的,该行以后的所有行,上移一位 for (int i = no + 1; i <= num; i++) { int j = i - 1; win.getFellow("row_" + i).setId("row_" + j); win.getFellow("name_" + i).setId("name_" + j); win.getFellow("type_" + i).setId("type_" + j); win.getFellow("parameter_" + i).setId("parameter_" + j); Button bun = (Button) win.getFellow("delbtd_" + i); Iterator ite = bun.getListenerIterator("onClick"); bun.removeEventListener("onClick", (EventListener) ite.next()); bun.setId("delbtd_" + j); bun.addEventListener("onClick", new DelEventListener(j)); } num--; } } /** * 保存选择 */ @SuppressWarnings("unchecked") public void saveParameter() { Map map = new HashMap(); // 定位到待保存的每一行 for (int i = 1; i <= num; i++) { // 获取页面的输入值 String name = ((Textbox) this.getFellow("name_" + i)).getValue() .trim(); String type = (String) ((Listbox) this.getFellow("type_" + i)) .getSelectedItem().getValue(); String defaultValue = ((Textbox) this.getFellow("parameter_" + i)) .getValue(); // 当name不为空且不重复,则把页面获取的数据存入Parameter对象 if (!"".equals(name) && !map.containsKey(name)) { Parameter tempparameter = new Parameter(); tempparameter.setName(name); tempparameter.setType(type); tempparameter.setDefaultValue(defaultValue); // 再以name为键Parameter对象为值,存入一个Map对象 map.put(name, tempparameter); } else if (map.containsKey(name)) { Message.showInfo("第" + i + "行参数名已存在"); return; } else { Message.showInfo("第" + i + "行参数名不能为空"); return; } } // 把已存的map作为参数列与report关联,并初始化页面 num = 0; inforreport.setParameters(map); this.initiPage(inforreport.getParameters()); Message.showInfo("保存成功!"); } }
发表评论
-
采用java.util.concurrent.Semaphore 类实现对资源限制访问量
2010-10-27 14:59 1915package 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 3909在图片附件中有效果图,可以先看一下. 先说下来由:因 ... -
试着用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 21:02 30381、局部刷新 /** * 刷新页面* */ ... -
zk框架中常见问题的解决
2009-06-01 22:10 118481、打开浏览器窗口常用于超链接 /** * 重新打开 ... -
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种各种组件的使用方法,代码示例。
ZooKeeper本质上是一个分布式...原本是Apache Hadoop的一个组件,现在被拆分为一个Hadoop的独立子项目,在Hbase(Hadoop的另外一个被拆分出来的子项目,用于分布式环境下的超大数据量的DBMS)中也用到了ZooKeeper集群。
ZK是一个专注于页面的框架,界面有很多组件是已经设计好,直接使用也是非常漂亮的。运行速度较慢,不适合做网站。
多个地址用逗号分隔 6.服务安全认证(配置basic账号和口令) 7.主备路由/异地灾备特色 负载均衡器主备功能开发,如果主节点全部挂掉,请求转发到可用的备用节点,如果备用节点也挂了,就抛出异常,如果主节点恢复...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
DB对于系统来说本身就默认为高可用组件,针对一些低频的业务使用DB实现分布式锁也是一个不错的解决方案,比如控制多机器下定时任务的起调,针对审批回调处理等,本文将给出DB实现分布式锁的一些场景以及解决方案,...
第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例 各种EJB之间的调用源码...
然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...