编写JSF框架自定义UI组件

一、慎用自定义UI组件

创新互联建站是一家集网站建设,柯桥企业网站建设,柯桥品牌网站建设,网站定制,柯桥网站建设报价,网络营销,网络优化,柯桥网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

虽然计算机软件技术发展迅速,但在人机交互的方式却保持相对稳定。鼠标和键盘自诞生之日起就没有发生过什么实质性变化,而我们日常使用软件时,也只是和诸如按钮、菜单、输入框以及下拉列表等有限的几种UI组件打交道,任何一种新UI组件的产生,都意味着向几十年来累积的习惯发起挑战。

JSF框架缺省的UI组件通常能满足你的需求,如果不能满足,则有必要重新审视一下你的界面设计,问问自己这几个问题:
1. 是否用缺省的UI组件就能实现所需的人机交互功能?
2. 如果单个UI组件不能,几个UI组件组合在一起是否可以?
3. 有没有替代的界面设计方案,可以避开使用自定义UI组件?

即使答案都是否定的,也不要急于下编写自定义UI组件的决心。别忘了,除了Sun的参考实现附带的UI组件外,还有很多UI组件包供你选择:
1. 开发工具如NetBeans在安装时一般都会自动安装额外的UI组件包;
2. 专业的第三方厂商会提供种类繁多功能强大的UI组件包,例如MyFaces。JSF规范称这种专业厂商为的Component Writer,是JSF建议的5种职能划分中的一种。
不论是开发工具附送的,还是第三方厂商提供的,这些组件包有专门的开发和维护团队,经过了充分的测试和实战考验,文档详尽,与开发工具集成,有的更有技术支持,总之四个字:方便可靠。

如果这些都不能令你满意,你还是一意孤行要编写自定义UI组件,那么,在开始动手之前,先了解一下自定义UI组件的不足:
1. 需要额外的编码,让你的设计变得复杂
2. 需要花费精力测试,而如果测试不足,则有可能含有Bug
3. 可能隐藏潜在的性能问题
4. 如果你在一个团队中工作,你必须编写足够详细的Java Doc,让别人明白怎么用你的自定义UI组件
5. 如果你希望你的UI组件能够集成到开发工具中,以便显示在组件面板上,你必须面对工具相关的配置工作

二、编写自定义UI组件的好处

当然,尝试编写自定义UI组件也并非全无好处。对于JSF的初学者,这是深入了解JSF内部细节的一种有效途径。当你成功编写一个自定义UI组件并理解了每个代码片段的含义后,你对JSF框架的理解肯定会向前迈进一大步。毕竟,UI组件是JSF框架的核心。

另一个好处是你可以实现一些非标准的界面设计,有时候这是必要的。例如,假设你是JS高手,你完全可以在自定义UI组件上用JS实现一些令人眩目的客户端效果。

将若干个标准UI组件组合成一个有着某种特定功能的组件集合,是自定义UI组件的另一用处。典型的例子如文件上载组件,可由一个文本字段组件、一个“浏览 ”按钮组件和一个“上传”按钮组件组成。这允许你一次鼠标拖放就能将这些捆在一起的组件添加到页面上,而不必逐个添加。更重要的是,你可以在自定义UI组件的内部处理这些组件之间的相互协调,而无需组件的使用者操心。例如,在文件上传组件中,如果文本字段组件为空,则不允许点击“上传”按钮。

三、写这篇文章的用意

很多读者写邮件给我,提到JSF自定义UI组件的问题。虽然我私底下并不赞成JSF的初学者涉足这个相对比较复杂的编程领域,但程序员们打破沙锅问到底的探索精神确实值得称道。

从邮件中可以看出,大部分读者都关注着JSF的发展,有些读者实际接触过JSF,用JSF做过项目,其中不乏对JSF已经非常了解的程序员。鉴于自定义 UI组件在《JSF Web应用开发实战》一书中只是一笔带过,为了使这本书能够适合更多不同程度的读者,我最终还是决定在博客上发表一些文章,系统地介绍一下JSF自定义 UI组件的相关知识,作为对书中内容的一个补充。

必须申明,写这样一个文章系列,不是为了演示JSF有多复杂。关于JSF的复杂性,已经有太多的误会,个中原因,主要是JSF生命周期被谈论得太多,以至于让初学者望而却步。其实,读过《JSF Web应用开发实战》一书的读者一定发现了,JSF实际上是迄今为止最简单的、生产率***的Web应用编程手段之一。JSF的复杂性体现在框架的实现本身,而这恰恰给作为框架使用者的程序员带来了使用上的简单和方便。好比一台自动档的车,虽然波箱比手动档要复杂得多,但显然驾驶员更轻松了。

可以这样说,自定义UI组件好比在波箱上动手脚,至少对于JSF 1.2版本来说是这样。酝酿中的JSF 2.0据说在这方面有很大的提升,编写自定义UI组件将变得十分容易。我对此变化的理解是,Sun已经不满足于自动波了,手自一体才是JSF 2.0的追求。

这个文章系列会包含多少篇文章,说实话我现在心里还真没底。可以肯定的是,我仍然会按照自己的写作习惯去组织文字,一是由浅入深,二是注重实战,三是用例子说话。还有,既然是对《JSF Web应用开发实战》一书的补充,我还是会结合NetBeans来写,至于NetBeans的版本,在写书时6.0.1是***版,那就还是用6.0.1 吧,虽然现在***版已经是6.1了,好在与6.0.1相比变化不大,6.0.1的代码在6.1中运行应该不会有太多问题。

【编辑推荐】

  1. 程序员必备Java API
  2. 对于JSF的一些思考
  3. 从JSF的切入点控制JSF
  4. 几个JSF流行名词的解释
  5. 浅谈JSF的UI组件

网页标题:编写JSF框架自定义UI组件
网址分享:http://www.shufengxianlan.com/qtweb/news35/66985.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联