1

有什么方法可以使用 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 功能,我需要创建自己的库。另外,我正在使用特定的模板。我需要获取标签标题来创建标签列表。标签是子组件,无论如何我可以迭代并获取它们的属性吗?我的意思是 primefaces 以某种方式做到了这一点。

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

4

2 回答 2

2

如果您显示的标记位于复合组件内(我猜是这样),那么以下表达式将使您能够访问其子组件:

#{component.getCompositeComponentParent(component).children}

稍微相关的问题:在JSF2中,如何知道复合组件是否有子组件?

于 2011-02-15T10:16:37.013 回答
0

如果您的复合组件是一个实例:javax.faces.component.UINamingContainer 试试这个:

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

您可以通过将它们打印到页面上来轻松调试哪个实例是您的 JSF 变量,#{cc}例如#{component}

干杯!

于 2016-09-21T15:14:07.513 回答