【发布时间】:2012-10-17 01:18:03
【问题描述】:
据我了解,ui:define 用于充当模板客户端的文件中,ui:insert 用于充当 Facelets 技术主模板的文件中并存,两者之间的联系通过“名称“ 属性。但我看到ui:insert 的“名称”属性是可选,而ui:define 是强制。为什么会这样?
【问题讨论】:
标签: jsf jsf-2 facelets templating
据我了解,ui:define 用于充当模板客户端的文件中,ui:insert 用于充当 Facelets 技术主模板的文件中并存,两者之间的联系通过“名称“ 属性。但我看到ui:insert 的“名称”属性是可选,而ui:define 是强制。为什么会这样?
【问题讨论】:
标签: jsf jsf-2 facelets templating
<ui:insert/>也可以用在标签文件中插入标签正文内容。
例如
/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>
请注意,以上内容不适用于复合组件。
【讨论】: