2011-03-12 75 views
0

Ui:包含和基于xhtml的标记(源代码为elt的标记)对我来说似乎非常相似。两者都允许重用一段标记。但我相信每个人都应该有一些理由。请有人简单解释一下吗? (我猜如果我阅读完整的facelets教程,我会学习它,但我现在没有时间去做,所以请不要链接到冗长的文档:)facelets的ui:包含和自定义标签有什么区别?

回答

3

它们非常相似。差异主要是句法。

经过观察他们的使用一段时间后,似乎惯例是你只在一种情况下使用的片段是ui的候选者:include,而你更经常重用并具有更独立语义的片段是候选者为自定义标签。

E.g.

单个视图可能有一个包含三个部分的表单;个人资料,工作历史,偏好。如果页面变得笨重,可以将它分成更小的部分。 3个部分中的每一个都可以移动到他们自己的Facelet文件中,然后将其用户添加到原始文件中。

另一方面,您可能有一种特定的方式在应用程序中的许多视图上显示图像。也许你在它周围画一条线,在它下面有一些文字等等。不要一遍又一遍地重复这个,你可以再次将它抽象成它自己的Facelet文件。虽然你可以使用ui:包含它,但大多数人似乎更喜欢在这里创建一个标签,所以你可以使用例如<my:image src="..." />在你的Facelets上。这看起来更好(更紧凑,更直接与其他组件)。

在与JSF 2.0捆绑在一起的Facelets版本中,简单标签可以被composite components取代。这是第三种变体,乍一看看起来很像自定义标签,但这些东西在技术上是不同的,因为它们不仅仅是一个包含,而是代表具有声明属性的真实组件,能够附加验证器等。

+0

感谢解释花花公子。 – 2011-07-27 17:57:10

相关问题