Duas listas em jsf

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 ?