Tenho esta lista
<p:selectOneMenu id="entidade" effect="fade" var="t" filter="true"
filterMatchMode="startsWith">
<f:selectItem itemLabel="Selecione uma entidade..." itemValue="" />
<f:selectItems
value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
var="entidade" itemLabel="#{entidade.municpio.codigoNome}"
itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>
Com a opção escolhida e sem o usuário clicar em um botão, preciso que carregue as informações segunda lista.
<p:outputLabel for="contribuinte" value="Contribuinte" />
<p:selectOneMenu id="contribuinte" effect="fade" var="t"
filter="true" filterMatchMode="startsWith">
<f:selectItem itemLabel="Selecione um contribuinte..." itemValue="" />
<f:selectItems
value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
var="entidade" itemLabel="#{entidade.municpio.codigoNome}"
itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>
Fiz algumas pesquisas e alguns testes mas sem sucesso.
<p:ajax não resolve?
Tenta aí
Fiz assim:
<p:selectOneMenu id=“entidade” effect=“fade” var=“t” filter=“true”
filterMatchMode=“startsWith”>
<f:selectItem itemLabel=“Selecione uma entidade…” itemValue="" />
<f:selectItems value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}" var=“entidade” itemLabel="#{entidade.municpio.codigoNome}" itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
<p:ajax event=“itemSelect” update=“outEntidadeEscolhida” />
</p:selectOneMenu>
Após escolher mostra este erro

Tentei implementar assim:
<p:selectOneMenu id="entidade" effect="fade" var="t" filter="true" filterMatchMode="startsWith" converter="entidadeConverter" value="#{declaracaocontroller.entidade}">
<f:selectItem itemLabel="Selecione uma entidade..." itemValue="" />
<f:selectItems value="#{declaracaocontroller.buscaEntidadesUsuarioLogado}"
var="entidade" itemLabel="#{entidade.municpio.codigoNome}" itemValue="#{entidade}" />
<p:column>
<h:outputText value="#{t.municpio.codigoNome}" />
</p:column>
</p:selectOneMenu>
Mas nunca chama value="#{declaracaocontroller.entidade}"
Converter
package org.desif.converter;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import org.desif.controller.desif.DeclaracaoController;
import org.desif.model.desif.EntidadeEntity;
@FacesConverter("entidadeConverter")
public class EntidadeConverter implements Converter {
@SuppressWarnings("unchecked")
@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
if (value != null && value.trim().length() > 0) {
try {
DeclaracaoController service = (DeclaracaoController) fc.getExternalContext().getApplicationMap()
.get("themeService");
return ((Map<String, Object>) service.getEntidades()).get(Integer.parseInt(value));
} catch (NumberFormatException e) {
throw new ConverterException(
new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro !!!", "Não existe esta entidade !"));
}
} else {
return null;
}
}
@SuppressWarnings("null")
@Override
public String getAsString(FacesContext fc, UIComponent uic, Object object) {
if (!object.toString().isEmpty()) {
return String.valueOf(((EntidadeEntity) object).getId());
} else {
return null;
}
}
}
Onde posso estar errando ?
Voltando a este tópico.
Fiz vários modificações, testes, mas não consegui.
Alguma sugestão ?