これは私が理解したことの要約です:
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 つの異なるコンポーネントがあるのですか? (私が正しければ、それらが異なる目的に使用されているとは言わないでください)