2016-03-30 2 views
0

Мне нужно интернационализировать элементы для компонента selectOneMenu JSF. Как это можно сделать для списка, полученного из базы данных?Как интернационализировать selectOneMenu выпадающие элементы, которые извлекаются из базы данных в JSF?

<p:selectOneMenu id="action" value="#{mapBean.newAction}" style="width:150px"> 
         <f:selectItem itemLabel="Action" itemValue="Empty" 
          noSelectionOption="false" /> 
         <f:selectItems value="#{mapBean.actions}" /> 
</p:selectOneMenu> 

Для mapBean.actions мне нужно dinamicaly изменения значений В зависимости от выбранного языка На данный момент я не имею представления о том, как осуществить это.

+1

Является ли это полезно? http://stackoverflow.com/q/4375578 – BalusC

+0

Как я понял в этой статье, значения пришли от ENUM, но моя идея поместила значения в базу данных. Например, создайте действие таблицы, которое содержит значение и различные локали ('en', 'uk', 'ru'). В соответствии с выбранной локалью получить новые значения для selectOneMenu. Я просто хочу работать с базой данных для значений, не используя файлы propertis. – Andrey

+0

О? Эти локализованные значения исходят из базы данных? Другими словами, эти локализованные значения уже находятся внутри '# {mapBean.actions}'? Тогда я больше не понимаю, почему у вас проблемы с этим. – BalusC

ответ

1

Как я понял ваш вопрос, у вас есть список объектов с свойством «Locale». И вы хотите отображать только элементы с указанной локалью в вашем selectOneMenu. Вы можете сделать что-то вроде этого, чтобы фильтровать selectItems:

<p:selectOneMenu id="action" value="#{mapBean.newAction}" style="width:150px"> 
          <f:selectItem itemLabel="Action" itemValue="Empty" 
           noSelectionOption="false" /> 
          <f:selectItems value="#{mapBean.actions}" 
           var="item" itemDisabled="#{item.locale ne 'en'}"/> 
    </p:selectOneMenu> 

и добавить в CSS на странице не отображаются отключенными:

.ui-selectlistbox-item.ui-state-disabled { 
    display: none; 
} 

Это решение от this answer

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