/ / Como internacionalizar os itens suspensos selectOneMenu que receberam do DataBase no JSF? - jsf, internacionalização, selectonemenu

Como internacionalizar os itens suspensos selectOneMenu que receberam do DataBase no JSF? - jsf, internacionalização, selectonemenu

Eu preciso de internacionalizar itens para o componente SelectOneMenu JSF. Como isso pode ser feito para a lista que recebeu do banco de dados?

<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>

Para o mapBean.actions, preciso alterar dinamicamente os valores de acordo com o idioma selecionado Por enquanto eu não tenho idéia de como implementar isso.

Respostas:

1 para resposta № 1

Como eu entendi sua pergunta você tem lista deobjetos com propriedade "Locale". E você deseja exibir apenas itens com localidade especificada no seu selectOneMenu. Você pode fazer algo assim para filtrar 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>

E adicione isso ao css da sua página para não exibir itens desativados:

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

Esta é a solução de esta resposta