RichFaces 团队发布了 RichFaces 3.1.0 版本。这个版本将 Ajax4JSF 和 RichFaces 的功能合并到一个包中,并添加了许多新组件。您可以从这里下载新版本或尝试在线演示。
之前,由于 Ajax4JSF 是开源的,而 RichFaces 是 Exadel 出售的商业产品(并且建立在 Ajax4JSF 引擎之上),Ajax4JSF 和 RichFaces 是分开发布的。自从 RichFaces 项目在 JBoss 上开源以来,这种分开的发布已经不再有意义。我们现在已经完全合并了这两个项目并打包。
本版本的几个主要新特性包括
- 工具提示 支持(气球帮助)
- 出色的 日历控件 用于日期选择
- 大大改进的 树控件,具有 基于标签的数据绑定
- 支持非常大的数据集的 可滚动数据表
- 支持 script.aculo.us 特效
- 数据网格 和 数据列表
工具提示可以轻松地附加到任何 JSF 控件,例如
<rich:toolBar> <rich:dropDownMenu value="File"> <rich:menuItem value="Open..."> <rich:toolTip>Open a file from the disk...</rich:toolTip> </rich:menuItem> <rich:menuItem value="Save"> <rich:toolTip>Save the file to the disk</rich:toolTip> </rich:menuItem> <rich:menuItem value="Save As..."> <rich:toolTip>Save the file to the disk with a new filename</rich:toolTip> </rich:menuItem> </rich:dropDownMenu> <rich:dropDownMenu value="View"> ... </rich:dropDownMenu> </rich:toolBar>
我最喜欢的新功能是无需 Java 基础数据绑定代码即可构建树(即,无需TreeModel或等效的)。相反,数据绑定可以在用户界面中完全完成。例如,如果我有一个层次目录结构,并且每个目录都包含文件,我可以按照以下方式构建我的目录和文件树
<rich:tree switchType="ajax"> <rich:recursiveTreeNodesAdaptor roots="#{root}" nodes="#{dir.children}" var="dir"> <rich:treeNode>#{dir.name}/</rich:treeNode> <rich:treeNodesAdaptor nodes="#{dir.files}" var="file"> <rich:treeNode>#{file.name}</rich:treeNode> </rich:treeNodesAdaptor> </rich:recursiveTreeNodesAdaptor> </rich:tree>
我们使用<rich:recursiveTreeNodesAdaptor>用于目录树,因为每个目录都递归地包含其他目录。对于文件,我们使用<rich:treeNodesAdaptor>由于每个目录中的文件列表仅有一级深度,因此无需此操作。(请比较此代码与您在Swing或其他基于Java的数据绑定框架中需要编写的代码!)
祝贺RichFaces团队全体成员!