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 № 1Como 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