Estou fazendo uma tela de cadastro de clientes.
O cliente possui um município vinculado.
Na tela de cadastro, haverá um selectOneMenu para selecionar o país, depois outro selectOneMenu para selecionar o estado e finalmente o selectOneMenu para selecionar o município, que é o que interessa para a classe e tabela de clientes.
Vejam como está no meu xhtml:
<h:outputLabel for="pais" value="País:" />
<p:selectOneMenu id="pais" value="#{paisController.pais}" >
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{paisController.paises}" var="p" itemLabel="#{p.nome}" itemValue="#{p}"/>
<p:ajax event="change" listener="#{paisController.actionCarregaUfs}" update="uf" />
</p:selectOneMenu>
<h:outputLabel for="uf" value="UF:" />
<p:selectOneMenu id ="uf" value ="#{unidadeFederacaoController.uf}" >
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{paisController.ufs}" var="uf" itemLabel="#{uf.nome}" itemValue="#{uf}" />
<p:ajax event="change" listener="#{unidadeFederacaoController.actionCarregaMunicipios}" update="municipio" />
</p:selectOneMenu>
<h:outputLabel for="municipio" value="Município:" />
<p:selectOneMenu id="municipio" value="#{clienteController.cliente.municipio}" >
<f:selectItem itemLabel="Selecione..." itemValue="" />
<f:selectItems value="#{unidadeFederacaoController.municipios}" var="municipio" itemLabel="#{municipio.nome}" itemValue="#{municipio}" />
</p:selectOneMenu>
Percebam que estou utilizando dois MB a parte para guardar o id do país selecionado e outro para guardar o id do estado selecionado. E isso está me causando problemas. Quando eu seleciono algum país para se chegar até a cidade, o MB clienteController deixa de executar o método de adicionar o cliente ao banco. Simplesmente não chama o método, e não aparece erro algum no console.
Se eu não usar os combobox de país e estado e município, o método chama normalmente e o cliente é inserido.
Se eu informar país, estado e município, o método não executa…