【问题标题】:understand the purpose of jsf ui:composition理解 jsf ui:composition 的目的
【发布时间】:2011-06-29 17:51:53
【问题描述】:

以下有什么用处?

<ui:composition template="template.xhtml">;

“在使用&lt;ui:composition&gt; 的模板客户端页面中,标记范围之外的任何内容都将被忽略,并且不包含在呈现的输出中”(JavaServerFaces 2.0,完整参考,pg.61)

既然&lt;ui:define&gt; 之外的所有东西都被忽略了,为什么还要放任何东西呢? &lt;ui:define&gt; 之外不得有任何内容。

但是这样做,我得到的只是模板本身,只填充了一些“可变”部分。

这似乎没什么大不了的。 我不明白的另一件事是组合元素的模板属性是可选的。没有模板引用的模板客户端代表什么?

【问题讨论】:

    标签: templates jsf facelets


    【解决方案1】:

    下面的有什么用处?

    <ui:composition template="template.xhtml">
    

    有了这个,你可以声明使用一个基本的模板,它有占位符来插入模板定义。这比反过来做更有用。例如,您需要在每个页面中一次又一次地包含页眉、页脚和/或菜单。使用模板,您无需执行此操作。它只是在模板中。


    “在使用 &lt;ui:composition&gt; 的模板客户端页面中,标记范围之外的任何内容都将被忽略,并且不包含在呈现的输出中”(JavaServerFaces 2.0,完整参考,pg.61) em>

    既然外面的一切都被忽略了,为什么还要放任何东西呢?在&lt;ui:define&gt;之外什么都不能放。

    您不需要这样做。你为什么要?好吧,也许基本教程就是这样做的,但这只是为了演示目的。 “这不会包含在渲染的输出中” 等等。另一方面,如果你碰巧使用了可视化编辑器,那么&lt;ui:composition&gt; 之外的内容将被视为。另见Is there a way to run a JSF page without building the whole project?


    我不明白的另一件事是,组合元素的模板属性是可选的。没有对模板的引用,它代表一个模板客户端是什么?

    一个简单的包含文件,您可以通过&lt;ui:include&gt; 包含它。

    另见:

    【讨论】:

    • 好的。假设我必须在我网站的每个页面中插入一个小表格。我该怎么办?
    • 您可以在&lt;ui:composition template&gt;&lt;ui:include&gt; 之间进行选择。使用&lt;ui:composition template&gt;,您的优势在于您可以毫无疑问地将更多其他重复标签重构到模板中,例如&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;h:head&gt;&lt;h:body&gt; 等。
    • 由于我尝试过但无法弄清楚如何完成此操作,因此我提出了另一个临时问题:stackoverflow.com/questions/6527801/…
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2015-05-16
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多