这是我理解的摘要:
ui:decorate
- 可以使用
ui:define
- 可以使用
ui:param
- 可以有外部内容
ui:composition
- 可以使用
ui:define
- 可以使用
ui:param
- -> 不能有外部内容
ui:include
- -> 不能使用
ui:define
- 可以使用
ui:param
- 可以有外部内容
假设这些,我可以使用
ui:decorate
作为ui:composition
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<!-- no content here -->
<ui:decorate template="templates/page.xhtml">
<ui:define name="test">
<h:outputText value="#{someBean.someProperty}"/>
</ui:define>
</ui:decorate>
<!-- no content here -->
</html>
ui:decorate
作为ui:include
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:panelGroup>...</h:panelGroup>
<ui:decorate template="fragments/page.xhtml">
<ui:param name="test" value="#{someBean.someProperty}"/>
</ui:decorate>
<h:panelGroup>...</h:panelGroup>
</html>
所以,我错过了什么吗?误解?
如果我是对的,为什么有 3 个不同的组件?(如果我是对的,请不要说它们用于不同的目标)