什么是JSF自定义复合组件与自定义经典组件之间的区别

Nic*_*ler 5 jsf java-ee custom-component composite-component jsf-2

我想构建一个自定义的JSF组件.现在我从oracle上读了一些文档,看了几个代码示例.问题是我有点困惑:

似乎有两种方法可以使用JSF 2.0+构建自定义组件.据我所知,自JSF 2.0以来我可以使用这些复合组件来构建我自己的组件.

但与"经典"组件相比,它们有任何缺点吗?

当我使用Compisite Components时,我的组件会相当复杂吗?

例如,我的Component将在java中有一些工作,这可能与Composite Components有关吗?

Bal*_*usC 10

如果要通过纯XML方式将一堆密切相关的现有标记/组件/ HTML表示为单个可重用组件,则复合组件非常有用.

没有可用于满足要求的标准JSF标签/组件时,自定义组件将是唯一的方法.例如<input type="file">,<input type="range">等等.注意,只要需要,这种定制组件又可以用在复合材料中.

完全有道理,对吧?

您可以创建一个扩展UINamingContainer(或至少实现NamingContainer)的所谓"支持组件"类,并将其绑定到组合<cc:interface componentType>.你可以在我的答案中找到几个例子.

但请注意,有时复合组件不合适,您需要创建标记文件.例如,当您想要自定义和可重复使用时<h:column>.

也可以看看: