首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套insertChildren复合材料

嵌套insertChildren复合材料
EN

Stack Overflow用户
提问于 2015-02-17 18:08:53
回答 1查看 762关注 0票数 2

我有两个嵌套的复合

复合A

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://sig.com/faces"
    xmlns:composite="http://java.sun.com/jsf/composite">

    <composite:interface>
    </composite:interface>
    <composite:implementation>
        <composite:insertChildren />
        <p:separator />
    </composite:implementation>
</ui:composition>

和复合B

(个案1)

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://sig.com/faces"
    xmlns:mycomposites="http://java.sun.com/jsf/composite/mycomposites"
    xmlns:composite="http://java.sun.com/jsf/composite">

    <composite:interface>
    </composite:interface>
    <composite:implementation>
        <mycomposites:a>
            <composite:insertChildren />
        </mycomposites:a>
    </composite:implementation>

</ui:composition>

最后,我有我的观点或页面。

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://sig.com/faces"
    xmlns:gt="http://java.sun.com/jsf/composite/template"
    xmlns:mycomposites="http://java.sun.com/jsf/composite/mycomposites"
    template="/template/template.xhtml">

    <ui:define name="body">
        <mycomposites:b>
            <h:outputText value="test" />
        </mycomposites:b>
    </ui:define>

</ui:composition>

没有呈现“测试”。我看到这是因为B中的insertChildren位于另一个复合insertChildren (A)中。

如果我将B中的insertChildren移到复合之外,那么工作得很好,如下所示:

(个案2)

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://sig.com/faces"
    xmlns:mycomposites="http://java.sun.com/jsf/composite/mycomposites"
    xmlns:composite="http://java.sun.com/jsf/composite">

    <composite:interface>
    </composite:interface>
    <composite:implementation>
        <mycomposites:desktop>
            <!-- MOVED -->
        </mycomposites:desktop>
        <composite:insertChildren />
    </composite:implementation>
</ui:composition>

但第二个案子对我没有多大帮助。我需要它就像2号案件一样

有什么帮助吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-12-23 14:10:09

我和你一样有同样的问题。

我有一个组件A.xhtml

代码语言:javascript
复制
<composite:implementation>
  <primefaces:datatable>
    <primefaces:column>
      <h:outputText value="#{row.identityName}" />
    </primefaces:column>
    <composite:insertChildren />
  </primefaces:datatable>
</composite:implementation>

它在三个文件中使用:

  • 通用/prove.xhtml
  • 标识/技术/search.xhtml
  • 身份/业务/search.xhtml

在" identity /*/search.xhtml“页面中,我向组件A提供了许多标识属性和子属性。因为这会产生许多重复的代码,我试图为这两个标识页制作组件A的子组件。

identity_A.xhtml

代码语言:javascript
复制
<composite:implementation>
  <component:A identityAttribute="example">
    <primefaces:column>
      <h:outputText value="#{row.identityName}" />
    </primefaces:column>
    <composite:insertChildren />
  </component:A>
</composite:implementation>

我注意到,我给identity_A.xhtml的孩子不再显示在primefaces .中。

针对这个问题,我的解决方案/解决方法是为这两个页面创建一个模板,而不是一个子组件:

identitySearch.xhtml

代码语言:javascript
复制
...
<component:A identityAttribute="example">
  <primefaces:column>
    <h:outputText value="#{row.identityName}" />
  </primefaces:column>
  <ui:insert name="datatableChildren">
</component:A>
...

也许你可以用我的方式解决你的问题。我希望有一个解决方案,使用composite:insertChildren**in嵌套的组合组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28568140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档