- 浏览: 233489 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
newLinuxJava:
http://www.voip-info.org/wiki/v ...
asterisk App Dial 拨号 发起外呼 -
newLinuxJava:
http://www.voip-info.org/wiki/v ...
asterisk App Dial 拨号 发起外呼 -
tsinglongwu:
这种做法在Server端getValue()方法是能获得修改后 ...
client-side programming客户端修改值,但服务端获取仍然旧值的解决办法 -
Listen_ing:
zk+spring+hibernate如何配置hibernat ...
zk+hibernate+spring零配置 -
peterxq181:
严重: Method not found in org.apa ...
zk+hibernate+spring零配置
import java.text.DecimalFormat; import java.text.ParseException; import java.util.List; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.util.GenericAutowireComposer; import org.zkoss.zkplus.databind.AnnotateDataBinder; import org.zkoss.zkplus.databind.DataBinder; import com.sun4love.common.web.zk.converter.SexRadiogroupConverter; /** * 注解绑定类 * <p> * 在GenericAutowireComposer基础上对注解进行增强, 因此你无需再页面上显式添加注解支持指令 * * <pre> * <?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?> * </pre> * <p> * * @author sun4love * */ abstract public class GenericDataBinderComposer extends GenericAutowireComposer { private static final long serialVersionUID = -8962566563467903754L; protected DataBinder binder; @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); binder = new AnnotateDataBinder(comp); comp.setAttribute("binder", binder); } protected void loadAll() { binder.loadAll(); } protected void loadAttribute(Component comp, String attr) { binder.loadAttribute(comp, attr); } protected void loadComponent(Component comp) { binder.loadComponent(comp); } /** * 绑定bean到ui组件上 * <p> * 范例 * <hr /> * * <pre> * <code> * <window id="userWin" apply="GenericDataBinderComposerChild"> * <textbox id="txtFirstName" /> * <textbox id="txtlastName" /> * <label id="lblFullName" /> * </window> * GenericDataBinderComposerChild类 * * public GenericDataBinderComposerChild extends GenericDataBinderComposer{ * private Textbox txtFirstName; * private Textbox txtLastName; * private Label lblFullName; * * public void doAfterCompose(Component comp) throws Exception { * super.doAfterCompose(comp); * binder.addBinding(txtFirstName, "value", "userWin$composer.user.firstName"); * binder.addBinding(txtLastName, "value", "userWin$composer.user.lastName"); * * //"txtLastName.onBlur"中的txtLastName是页面上<textbox id="txtlastName" /> * //userWin$composer中的userWin是页面上window的id,$.composer是固定格式 * addBinding(lblFullName, "value", "userWin$composer.user.fullName","txtLastName.onBlur" , null,null,null); * } * } * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如<textbox value="@{user.name}"/>中的value * @param expr * 表达式,例如,例如<textbox value="@{user.name}"/>中的user.name * @param loadWhenEvents * 加载bean到ui的时机,例如comp1.onClck、comp2、onBlur、comp3.onSelect, * 等同于<textbox id="txtFullName" * value="@{user.fullName, load-when= * 'txtLastName.onBlur'}"/>中的txtLastName.onBlur * @param saveWhenEvent * 保存ui value到bean的时机,例如comp3.onBlur, 等同于<textbox * id="txtFullName" value="@{user.fullName, * save-when= * 'txtFullName.onBlur',}"/>中的txtFullName.onBlur * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), * @param converter * 转换器,ui到bean之间的互相转换,类似hibernate jdbc type到db type或者struts中的转换器 * ,样例见{@link SexRadiogroupConverter} */ protected void addBinding(Component comp, String attr, String expr, String loadWhenEvent, String saveWhenEvent, String access, String converter) { if (loadWhenEvent != null && "".equals(loadWhenEvent.trim())) { binder.addBinding(comp, attr, expr, (List) null, saveWhenEvent, access, converter); } else { binder.addBinding(comp, attr, expr, new String[] { loadWhenEvent }, saveWhenEvent, access, converter); } } /** * 绑定bean到ui组件上 * <p> * 范例 * <hr /> * * <pre> * 页面 * <window id="userWin" apply="GenericDataBinderComposerChild"> * <textbox id="txtFirstName" /> * <textbox id="txtlastName" /> * <label id="lblFullName" /> * </window> * GenericDataBinderComposerChild类 * * public GenericDataBinderComposerChild extends GenericDataBinderComposer{ * private Textbox txtFirstName; * private Textbox txtLastName; * private Label lblFullName; * * public void doAfterCompose(Component comp) throws Exception { * super.doAfterCompose(comp); * binder.addBinding(txtFirstName, "value", "userWin$composer.user.firstName"); * binder.addBinding(txtLastName, "value", "userWin$composer.user.lastName"); * * //"txtLastName.onBlur"中的txtLastName是页面上<textbox id="txtlastName" /> * //userWin$composer中的userWin是页面上window的id,$.composer是固定格式 * addBinding(lblFullName, "value", "userWin$composer.user.fullName","txtLastName.onBlur" , null,null,null); * } * } * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如<textbox value="@{user.name}"/>中的value * @param expr * 表达式,例如,例如<textbox value="@{user.name}"/>中的user.name * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), */ protected void addBinding(Component comp, String attr, String expr, String access) { binder.addBinding(comp, attr, expr, (List) null, (List) null, access, null); } /** * 绑定bean到ui组件上 * <p> * 范例 * <hr /> * * <pre> * <window id="userWin" apply="GenericDataBinderComposerChild"> * <textbox id="txtFirstName" /> * <textbox id="txtlastName" /> * <label id="lblFullName" /> * </window> * GenericDataBinderComposerChild类 * * public GenericDataBinderComposerChild extends GenericDataBinderComposer{ * private Textbox txtFirstName; * private Textbox txtLastName; * private Label lblFullName; * * public void doAfterCompose(Component comp) throws Exception { * super.doAfterCompose(comp); * binder.addBinding(txtFirstName, "value", "userWin$composer.user.firstName"); * binder.addBinding(txtLastName, "value", "userWin$composer.user.lastName"); * * //"txtLastName.onBlur"中的txtLastName是页面上<textbox id="txtlastName" /> * //userWin$composer中的userWin是页面上window的id,$.composer是固定格式 * addBinding(lblFullName, "value", "userWin$composer.user.fullName","txtLastName.onBlur" , null,null,null); * } * } * * </pre> * * @param comp * ui组件 * @param attr * ui组件的属性,例如<textbox value="@{user.name}"/>中的value * @param expr * 表达式,例如,例如<textbox value="@{user.name}"/>中的user.name * @param loadWhenEvents * 加载bean到ui的时机,例如comp1.onClck、comp2、onBlur、comp3.onSelect, * 等同于<textbox id="txtFullName" * value="@{user.fullName, load-when= * 'txtLastName.onBlur'}"/>中的txtLastName.onBlur * @param access * 访问安全性,允许保存ui value 到bean,还是是load bean到ui,还是两者都是,或者什么都不做, * 可选值为none,save,load,both(save/load), * @param converter * 转换器,ui到bean之间的互相转换,类似hibernate jdbc type到db type或者struts中的转换器 * ,样例见{@link SexRadiogroupConverter} */ protected void addBinding(Component comp, String attr, String expr, String access, String converter) { binder.addBinding(comp, attr, expr, (List) null, (List) null, access, converter); } }
发表评论
-
zk主题生成器
2011-09-27 20:37 1780生成器在附件内,兼容zk3.x 与zk5.x,zkth ... -
zk服务器端获取鼠标点击位置
2011-09-08 22:24 2738index.zul <?xml version=&qu ... -
zk Fiddle-zk在线测试保存代码分享平台
2011-09-02 10:40 2070http://zkfiddle.org/ 是zk项目组之一To ... -
zksample2-一个复杂应用的zk示例
2011-09-02 10:32 2133Zksample2 is a demo application ... -
zk5.0.8发布
2011-08-31 18:02 1214该版本是一个维护版本,主要于bug修复及引入几个新特性 ... -
zk数据绑定
2011-08-21 23:53 3816简介: 关于数据绑定:数据绑定是一种机制,在UI组件和数据源 ... -
zk EE/PE/CE的区别
2011-08-18 10:32 4494自从zk5.0以后,zk拆分为 EE / PE / CE ... -
ZK 5.0.8 新特性
2011-08-17 19:03 37028月16日,zk官网:zk5.0.8将要发布 z ... -
zk client与server code结合提高长操作的响应性
2011-08-17 15:58 1313一,关于长操作与响应性 zk client ... -
zk tooltiptext中换行
2011-06-10 23:10 2284<window title="My ... -
zk下载文件中文乱码解决方案
2011-06-02 11:44 3827本文来自http://sun4love.iteye.co ... -
【zk视频】如何了解一个组件默认支持服务器端事件
2011-05-25 15:48 1289如何了解一个组件默认支持服务器端事件? 知识点:在 ... -
【zk视频】如何查看zk源码,了解zk原理
2011-05-25 15:09 1434当org.zkoss.zul.Window关闭时,zk是如何工 ... -
ZK 5.0.7发布,及新特性
2011-05-12 09:27 1337ZK是一套以 AJAX/XUL/Java 为基础的网页应用程式 ... -
use【组件公共属性】
2011-04-12 22:52 1221语法 apply="a-class-nam ... -
zk异步请求异常,自定义错误页面的bug
2011-04-08 13:38 1487zk版本5.0.6 现在遇到一个问题,觉得是b ... -
zk扩展工具--spring集成--字符串处理--日期处理
2011-04-07 12:22 1597事例 <?taglib uri ... -
一张图让你清晰理解zk架构事件流程
2011-03-06 12:17 1536一张图让你清晰理解zk架构事件流程 -
zk组件事件调用的顺序
2011-03-02 13:09 2326将此文赠送给zk群朋友:易语静人(455938495) ... -
了解include组件
2011-02-17 12:12 2156了解include组件 预备知识: 加 ...
相关推荐
在这个"ZK开发文档中文HTML版"中,你将找到关于如何使用ZK框架进行开发的详细指南。 首先,文档会介绍ZK的基本概念,包括组件系统、事件处理和布局管理。ZK的组件库丰富,涵盖了各种常见的UI元素,如按钮、表格、树...
在本文中,我们将深入探讨Laravel开发中的Composer插件,以及如何有效地利用它们来增强项目的功能和效率。Composer是PHP的一个依赖管理工具,它允许开发者声明项目所依赖的库,并自动处理这些库的安装和更新。在...
通过阅读和实践《ZK开发手册(中文)》,开发者不仅能掌握ZK框架的基本用法,还能深入了解其高级特性和最佳实践,从而更高效地开发出高质量的Web应用程序。对于那些希望提升Web应用用户体验、减少前端复杂性的开发者来...
Laravel开发-composer Rinvex Composer是一个直观的软件包,它利用Composer插件API支持安装过程中的其他操作,例如在默认供应商库外安装软件包,以及在安装、更新和卸载过程中运行自定义脚本。
在PHP开发环境中,Composer起到了构建、部署和维护应用程序依赖关系的核心作用。本篇将详细介绍Composer-Setup.exe,它是Composer的Windows安装程序,以及如何在已安装PHP的基础上配置和使用Composer。 首先,让...
Unity3D是一款强大的游戏开发引擎,广泛应用于游戏开发、虚拟现实和增强现实项目。在创建大规模、真实的3D环境时,地形系统是至关重要的部分。本文将深入探讨Unity3D中的两个知名地形插件——WorldComposer和Terrain...
本实战教程将深入探讨如何利用ZK框架进行Ajax开发,旨在帮助开发者高效地构建交互性强、响应快速的Web应用。 在ZK框架中,Ajax的核心概念是事件驱动和组件模型。ZK通过事件监听和组件间的通信机制,使得Ajax请求...
Composer是PHP开发中不可或缺的工具,它主要用于管理项目依赖,使开发者能够轻松地安装、更新和管理各种PHP库和框架。在Windows环境下,有时通过官方渠道下载Composer可能由于网络问题而遇到困难,因此这个Windows...
在本文中,我们将深入探讨`Laravel开发-flow-composer-installers`这个主题,这是一个与Laravel框架相关的开发工具,主要用于优化Composer的包安装过程。Composer是PHP中的依赖管理工具,而`composer-installers`则...
在这个"Laravel开发-composer-about"主题中,我们将深入探讨`composer.lock`文件以及如何获取和解析其中关于已使用包的信息。 `composer.json`文件是项目的核心配置文件,它定义了项目所需的包、版本约束和其他元...
总结起来,Composer是PHP开发中不可或缺的一部分,而正确配置PHP环境,尤其是OpenSSL扩展和证书,对于顺利安装和使用Composer至关重要。遇到问题时,检查PHP版本、启用OpenSSL扩展、配置正确的证书路径是解决问题的...
Code Composer Studio (CCS) 集成开发环境 (IDE)官方安装包,注意是在线的,省去注册登录的麻烦。
在PHP项目开发中,合理利用Composer可以极大地提高开发效率,简化项目依赖管理的过程。此外,Composer还支持自更新功能,可以通过`composer self-update`命令随时获取最新版本的Composer,保持工具的新鲜度。
在Laravel框架的开发过程中,`composer-bump`是一个非常重要的工具,它允许开发者通过Artisan命令行工具来轻松地更新`composer.json`文件中的版本号。`composer.json`是PHP项目的核心配置文件,用于定义项目的依赖...
本主题将深入探讨Laravel开发中的一个重要组件——`laravel-composer`,以及如何利用Artisan命令行工具来操作Composer。 首先,我们要明白Composer在PHP开发中的角色。Composer是PHP的一个依赖管理工具,它允许...
NVIDIA FX Composer是一款强大的视觉效果和图形开发工具,主要用于创建、测试和调试复杂的实时图形应用程序。这款工具在游戏开发、专业可视化以及虚拟现实等领域有着广泛的应用。FX Composer提供了直观的界面,让...
1. **依赖管理**:Composer 使开发人员能够声明项目依赖的库,并自动下载和安装这些库及其依赖。这简化了项目的构建和维护,因为所有的库都会保持在最新且兼容的状态。 2. **自动加载**:Composer 生成一个自动加载...