我想构建一个自定义的JSF组件。现在,我阅读了一些来自oracle的文档,并看到了一些代码示例。问题是我有点困惑:
似乎有两种方法可以使用JSF 2.0+构建自定义组件。据我所知,从JSF2.0开始,我可以使用这些组合组件来构建我自己的组件。
但是,与“经典”组件相比,它们有什么缺点吗?
我的组件将是相当复杂的,当我使用complex组件时,我是否丢失了任何东西(除了向下兼容)?
例如,我的组件在java中有一些工作要做,这在组合组件中可能吗?
发布于 2012-10-12 09:45:37
如果您希望通过纯XML方式将一组密切相关的现有标记/组件/HTML表示为单个可重用组件,则复合组件非常有用。
当没有标准标记/组件可用来满足需求时,自定义组件将是唯一的方法。例如<input type="file">
、<input type="range">
等。请注意,只要需要,这样的定制组件可以依次在组合中使用。
完全说得通,对吧?
您可以创建一个扩展UINamingContainer
(或至少实现NamingContainer
)的所谓“支持组件”类,并通过<cc:interface componentType>
将其绑定到组合。You can find several examples in my answers here。
但是请注意,有时复合组件并不合适,您需要创建一个标记文件来代替。例如,当您想要拥有一个自定义的、可重用的<h:column>
时。
另请参阅:
https://stackoverflow.com/questions/12847003
复制相似问题