Интернационализация вложенного компонента JSF2 - PullRequest
0 голосов
/ 27 марта 2012

У меня есть два составных компонента 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 /> re- использует модальный компонент следующим образом:

<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 Ответ

2 голосов
/ 27 марта 2012

Вы можете использовать parent для адресации атрибутов родительского компонента.Я никогда не пробовал это с пакетами ресурсов.Но из теории вы могли бы ..

заменить

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

на:

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