编写JSF自定义复合组件的技巧和窍门 - 编程入门网
重用技巧:重用标准渲染器类型。 3、创建自定义标签,继承 UIComponentTag 传统方式:返回渲染器类型和组件类型,设置 JSF 表达式属性 重用技巧:传递属性值给作为子组件的标准组件。 示例概述 我们通过一个自定义复合组件 Value Scroller 的开发步骤说明如何运用多种技巧重用标准组件的功 能和实现,达到简化开发易于重用的目的。 Value Scroller 可以让你通过点击增值或减值按钮来输入数 值,而不用手工键入,如 图 1 所示。这个示例只包含最基本的功能,如只支持整型数值输入,但对于本 文要介绍的内容已经足够了。 图 1. 测试页面中的 Value Scroller 测试页面中的 Value Scroller" src="http://java.chinaitlab.com/UploadFiles_8734/200905/20090527111440586.png" width=382 twffan="done"> 图 2 说明了 Value Scroller 的基本类结构,遵循 MVC 模式。组件类 ValueScroller 扩展了 UIPanel,作为控制器(Controller)负责与用户的交互。标签类 ValueScrollerTag 继承了 UIComponentTag, 作为视图(View)处理页面显示。与 Value Scroller 绑定的值对象作为模型(Model )存储用户键入的数值。 图 2. Value Scroller 的类结构 在后面章节中,本文将结合 Value Scroller 示例说明如何应用前面提到的原则和技巧快速开发 JSF 自定义复合组件。 编写JSF自定义复合组件的技巧和窍门(3)时间:2011-11-02 IBM选择 UIPanel 作为容器 创建 JSF 自定义复合组件的第一步就是要选择一个标准组件类进行扩展。通常我们会考虑将这个组件 类作为容器,在其中嵌入子组件,从而构成复合组件。这里选择继承 UIPanel 作为 Value Scroller 的 容器,以 Grid 的方式渲染生成页面,并且其中包含一个 UIInput 和两个 UICommand,分别作为数值输 入框和加减值按钮,如 清单 1 所示: 清单 1. 扩展类 UIPanel public class ValueScroller extends UIPanel { /** * The default constructor * */ public ValueScroller() { super(); addChildrenAndFaces(); } } 作为 Value Scroller 子组件的那些标准组件将在 addChildrenAndFaces 方法中加入布局容器之中。 重用标准渲染器类型 接着,我们开始创建 Value Scroller 的子组件,并且实现渲染器的功能。按照传统方式,必须覆盖 UIComponent 的 encodeBegin() 和 decode() 方法,但是,如果我们开发的复合组件只是由多个标 准组件构成,我们完全可以将不依赖于特定标记语言的标准组件基类加入到自定义组件中,并且为每个标 准组件设定一个标准的渲染器类型,就可以完成复合组件要实现的渲染器功能。重用标准组件渲染器类型 好处在于两方面:减少开发的工作量和可能出错的机会,对于 JSF 初学者尤为重要;不用实现与特定标 记语言相关的 encode/decode 逻辑,使组件类更易于重用。 “JavaServer Faces 实战” 这本书列出了 JSF 规范提供的标准渲染器类型。 表 1. JSF 标准渲染器
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |