国际化嵌套的JSF2复合组件

时间:2012-03-27 09:31:02

标签: jsf-2 internationalization composite-component

我有两个JSF2复合组件:<my:modal /><my:about /><my:modal />支持内部子项填充模态对话框:

<cc:implementation>
    <div class="modal fade" id="#{cc.clientId}" >
        <div class="modal-header">
            <a class="close" data-dismiss="modal">&times;</a>
            <h3>#{cc.attrs.title}</h3>
        </div>
        <div class="modal-body">
            <div class="well">
                <fieldset>
                    <div class="control-group">
                        <cc:insertChildren />
                    </div>
                </fieldset>
            </div>                    
        </div>
        <div class="modal-footer">
            <cc:renderFacet name="footer" />
        </div>
    </div>
</cc:implementation>

因此,开发人员可以通过执行以下操作来使用它:

           

<my:about />标签重新使用模态组件,如下所示:

<cc:implementation>
   <div id="#{cc.clientId}">
       <my:modal id="#{cc.clientId}:modal">
           <h:outputText value="#{cc.resourceBundleMap.ABOUT}" />
       </my:modal>
   </div>
</cc:implementation>

我遇到的问题是它在ABOUT组件的资源包中寻找my:modal密钥而不是my:about组件。我希望它能够在组件实现的资源包中查找ABOUT键而不是嵌套组件。

有解决方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用parent来解决父组件的属性。我从未尝试过资源包。但是从理论上你可以......

替换

<h:outputText value="#{cc.resourceBundleMap.ABOUT}" />

使用:

<h:outputText value="#{cc.parent.resourceBundleMap.ABOUT}" />