ui:composition和ui之间的区别:Facelets中的装饰

ui:compositionui:decorate Facelets中的ui:decorate什么区别? 两者似乎都支持ui:define为子标签。 在什么情况下你会使用这些?

标记之外的任何内容都将被忽略。 对于 ,情况并非如此,因此它有益于“模板中的模板”。

通过查看以下答案中的一些真实世界示例,可以更好地理解这有何意义:

  • ui:decorate和ui:include之间真正的概念差异是什么?
  • 是否可以在JSF 2中使用带有复合组件的模板?
  • 有没有办法在不构建整个项目的情况下运行JSF页面?

正如文档所说: http : //docs.oracle.com/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/pdldocs/facelets/ui/decorate.html装饰标签与组成相同,唯一的区别这就是ui:decorate不会忽略标签之外的内容,当你想要制作一个区域或页面部分的模板时,这可能是有用的。

例如,当您想要创建应用程序的一般外观模板时,请使用合成它。 当它删除标签之外的内容时,模板属性就是谁真正定义了应用程序的一般外观区域。

使用decorate标签,因为标签外部的内容未被删除,您可以制作内容区域内的部分模板。

一个示例可以是使用合成模板来定义标题,菜单,页脚和内容部分。

然后在内容部分中,您可以在创建表单时使用装饰器标记,然后使所有表单具有相同的外观。 (例如,标题,组件区域和按钮区域。)