国际化嵌套JSF2复合组件



我有两个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>

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

有解决办法吗?

您可以使用parent来寻址父组件的属性。我从未在资源捆绑包中尝试过。但从理论上讲,你可以。。

更换

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

带有:

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

相关内容

最新更新