正如我所理解的那样,ui:define
用在充当模板客户端的文件中,ui:insert
用于充当Facelets技术主模板的文件中,并且两者之间的联系发生通过“名称”属性。但我发现“{1}}的”名称“属性可选,ui:insert
的强制性。为什么这样?
答案 0 :(得分:1)
<ui:insert/>
也可用于标记文件中以插入标记正文内容。
E.g。
/WEB-INF/tags/someTag.xhtml
<ui:composition ...>
<p>Some HTML ...</p>
<ui:insert/>
<p>Some other HTML...</p>
<ui:composition>
将用作
<my:someTag ...>
<p>This content will end up in place of ui:insert.</p>
</my:someTag>
顺便说一下,这对数据表特别有用:
/WEB-INF/tags/dataTable.xhtml
<ui:composition ...>
<h:dataTable ...>
<ui:insert/>
</h:dataTable>
<ui:composition>
将用作
<my:dataTable ...>
<h:column>...</h:column> <!-- can also be another tag file! -->
</my:dataTable>
请注意,复合组件无法实现上述目的。