RichFaces 3.1 发布!

发布者:    |      

RichFaces 团队发布了 RichFaces 3.1.0 版本。这个版本将 Ajax4JSF 和 RichFaces 的功能合并到一个包中,并添加了许多新组件。您可以从这里下载新版本或尝试在线演示

之前,由于 Ajax4JSF 是开源的,而 RichFaces 是 Exadel 出售的商业产品(并且建立在 Ajax4JSF 引擎之上),Ajax4JSF 和 RichFaces 是分开发布的。自从 RichFaces 项目在 JBoss 上开源以来,这种分开的发布已经不再有意义。我们现在已经完全合并了这两个项目并打包。

本版本的几个主要新特性包括

工具提示可以轻松地附加到任何 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团队全体成员!


返回顶部