JSF复合组件儿童

时间:2011-02-15 03:49:38

标签: java jsf jsf-2 composite-component

有没有办法使用EL来检索子列表,以便我可以使用

进行迭代
<ul>
   <ui:repeat value="#{Magic El expression}" var="children" >
      <li>
      <p> #{children.title} *</p>
      </li>
   </ui:repeat>
</ul>
<div>
 <cc:insertChildren />
</div>

* perhaps #{children.attrs.title} I don't know?

我在这里要做的是创建一个Tab复合组件。我知道诸如primefaces之类的库提供了tabview等。但是我需要创建自己的库,因为扩展的jquery功能。另外,我正在使用特定的模板。 我需要获取标签标题以创建标签列表。选项卡是子组件,无论如何我可以迭代并获取其属性?我的意思是素面以某种方式做到了。

如果查看他们的html标记,他们会创建一个无序列表,其中包含每个子标签视图组件的标题。这是如何实现的?

2 个答案:

答案 0 :(得分:2)

如果您显示的标记位于复合组件内(我猜它是),那么以下是允许您访问其子项的表达式:

#{component.getCompositeComponentParent(component).children}

稍微相关的问题:In JSF2, how to know if composite component has children?

答案 1 :(得分:0)

如果Composite Component是以下实例:javax.faces.component.UINamingContainer 试试这个:

    <c:forEach items="#{cc.children}" varStatus="loop" var="child">
      loop[#{loop.index}]: #{child.getAttributes().get('title')}
    </c:forEach>

您可以通过将它们打印到#{cc}#{component}

等页面来轻松调试哪个实例是您的JSF变量

干杯!