2012-03-27 2 views
0

У меня есть два составных компонента JSF2: <my:modal /> и <my:about />. <my:modal /> поддерживает внутренние детей, чтобы заполнить модальный диалог:Интернационализируйте вложенный составной компонент JSF2

<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 в наборе ресурсов реализации компонента вместо вложенных компонентов.

Есть ли обходной путь для этого?

ответ

2

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

заменить

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

с:

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

Great! Он работает, когда ссылается на родителя, используя # {cc.parent.resourceBundleMap}. Это может быть немного сложно, если у вас есть несколько вложенных компонентов, но он будет выполнять эту работу. Благодаря! –

+0

Приятно слышать, что он работает! –

 Смежные вопросы

  • Нет связанных вопросов^_^