facelets使用值绑定表达式插入/定义

时间:2012-02-29 15:41:07

标签: jsf-2 facelets icefaces

我尝试将bean属性绑定到 ui:insert name属性。

<ice:panelTabSet var="tab" items="#{mainTabsTempl.tabs}">               
    <ice:panelTab label="#{tab.label}">  
        <ui:insert name="#{tab.tabContentUIName}">   
           content of #{tab.tabContentUIName} tab   
        </ui:insert>    
    </ice:panelTab>  
</ice:panelTabSet>

ui:insert 将此值绑定表达式视为字符串。

有没有办法传递值绑定表达式?

1 个答案:

答案 0 :(得分:1)

现在我看到你想要实现的目标。不幸的是,至少有两个原因是不可能的。第一个ui:insert仅支持文字。它显式检查name属性,并在它不是文字时抛出异常。第二个原因是panelTabSet是一个组件,因此它的变量 - 在您的情况下为“tab” - 在呈现阶段可用,而ui:insert / ui:define是在视图构建期间执行的标记处理程序。 / p>

您可以尝试重新提问并再次提问。我的理解是你想要一个丰富的tabset模板/组件,你可以传递一系列facet作为单独的选项卡。我的猜测是尝试使用insertFacet复合组件和f:facet。我没有使用复合组件,所以我无法在这里提供帮助。