如何将参数从模板客户端传递到主模板,然后在复合属性中使用它?

tar*_*rka 4 parameters jsf facelets

我有一个复合组件(导航栏),它使用一个名为“ activeIndex”的变量来确定哪个选项卡处于活动状态(显然)。导航栏是具有以下属性的复合组件:

<!-- INTERFACE -->
<cc:interface>
    <cc:attribute name="tab"/>
</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>

    <pou:tabMenu activeIndex="#{cc.attrs.tab}" 
                 styleClass="margin-top-52">  

        <pou:menuitem value="Home" url="#" />  
        <pou:menuitem value="About" url="#"/> 
        <pou:menuitem value="iConsult" url="#"/> 
        <pou:menuitem value="Contact" url="#"/>  

    </pou:tabMenu> 

</cc:implementation>
Run Code Online (Sandbox Code Playgroud)

所以从这里我可以使用以下方式传递活动选项卡:

<!-- Composite Navigation -->
<ez:anonymous-navigation tab="2"/>
Run Code Online (Sandbox Code Playgroud)

问题是上面的代码放置在template.xhtml中,我不想在模板中指定制表符值2。相反,我需要将此值从实现模板的页面传回,该模板又将其传递给上述代码。

Bal*_*usC 5

使用<ui:param>。这是一个启动示例:

client.xhtml

<ui:composition template="/WEB-INF/template.xhtml"
    xmlns="..."
>
    <ui:param name="tab" value="2" />
    ...
</ui:composition>
Run Code Online (Sandbox Code Playgroud)

/WEB-INF/template.xhtml

<ez:anonymous-navigation tab="#{tab}"/>
Run Code Online (Sandbox Code Playgroud)