以下内容的用处是什么?
<ui:composition template="template.xhtml">;
“在使用<ui:composition>
的模板客户端页面中,标记范围之外的任何内容都将被忽略,并且不包含在呈现的输出中”(JavaServerFaces 2.0,完整参考,第61页)
由于<ui:define>
之外的所有内容都被忽略了,为什么要放在那里呢?没有什么必须放在<ui:define>
之外。
但是这样做,我得到的只是模板本身,只填充了一些“变量”部分。
似乎没什么大不了的。 我不明白的另一件事是,composition元素的template属性是可选的。如果没有引用模板,它代表模板客户端是什么?
答案 0 :(得分:10)
以下内容的用处是什么?
<ui:composition template="template.xhtml">
通过这种方式,您可以声明使用具有占位符的基本模板来插入模板定义。这比反过来做的更有用。您需要一次又一次地在每个页面中包含页眉,页脚和/或菜单。使用模板,您无需执行此操作。它只是在模板中。
“在使用
<ui:composition>
的模板客户端页面中,标记范围之外的任何内容都将被忽略,并且不包含在呈现的输出中”(JavaServerFaces 2.0,完整参考,第61页)既然外面的一切都被忽略了,为什么要把它放在那里?没有什么必须放在
之外<ui:define>
。
您不需要这样做。你为什么这样?好吧也许基础教程可以做到这一点,但这只是为了演示目的。 “这不会包含在渲染输出中”等等。另一方面,如果您碰巧使用可视化编辑器,那么<ui:composition>
以外的内容将被视为。另请参阅Is there a way to run a JSF page without building the whole project?
我不明白的另一件事是,composition元素的模板属性是可选的。如果没有对模板的引用,它会出现什么样的模板客户端?
一个简单的包含文件,您可以<ui:include>
包含该文件。