【发布时间】:2013-07-29 04:40:30
【问题描述】:
是否有可能有一个具有 ui:repeat 的 JSF 组件并在 repeat 内部调用同一个组件?这是因为我正在构建问题树:
<cc:interface>
<cc:attribute name="questions" required="true" />
<cc:attribute name="renderQuestions" required="true" default="true" />
</cc:interface>
<cc:implementation>
<c:if test="#{cc.attrs.renderQuestions}">
<ui:repeat value="#{cc.attrs.questions}" var="q">
<p:panelGrid columns="2">
<h:outputLabel value="#{q.question}"></h:outputLabel>
<p:selectBooleanButton onLabel="#{messages['commons.yes']}"
offLabel="#{messages['commons.no']}" onIcon="ui-icon-check"
offIcon="ui-icon-close" value="#{q.ok}">
<p:ajax update="@all"></p:ajax>
</p:selectBooleanButton>
</p:panelGrid>
<cf:question renderQuestions="#{q.ok}" questions="#{q.children}" />
</ui:repeat>
</c:if>
</cc:implementation>
目前我正在使用 stackoverflow?
【问题讨论】:
-
理论上嵌套两个
ui:repeat标签是没有问题的。但是,这取决于您的cf:question标签的内容。 -
嗨,cf:question 的内容与上面的代码相同,它是呈现该视图的递归调用。目标是编写问题及其子项(如果有)。
-
那么,你 shouldn't rely in JSF declarative tags 在视图端进行了这种递归。您为什么不针对问题构建一个双重迭代?
-
不幸的是,我想要的是一个 n 层次的问题,这就是为什么双迭代行不通的原因。
标签: jsf jsf-2 recursion facelets composite-component