ui:装饰取代ui:composition和ui:include?

时间:2013-04-27 13:12:24

标签: templates jsf-2 facelets

这是我理解的摘要:

ui:decorate

  1. 可以使用ui:define
  2. 可以使用ui:param
  3. 可以有外部内容
  4. ui:composition

    1. 可以使用ui:define
    2. 可以使用ui:param
    3. - >不能有外部内容
    4. ui:include

      1. - >不能使用ui:define
      2. 可以使用ui:param
      3. 可以有外部内容
      4. 假设这些,我可以使用

        ui:decorateui: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:decorateui: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个不同的组件? (请不要说它们用于不同的目标,如果我是对的)

0 个答案:

没有答案