Boa Tarde pessoal, to com uma problema que já rodei o google, o fórum, e todas as soluções possíveis e imaginarias e não achei nada que resolvesse.
Eu estou montando uma pagina, e com <p:selectOneMenu> e ao carregar um menu ele cai no bean executa um método e carrega o segundo combo, e assim por diante…
Bom o primeiro combo funcionou certo, carregou o segundo porem não funciona com o terceiro, ele so cai no método se eu escolher o “Selecione”, que vai com valor 0, fora isso ele não seta a variável projetos.
Já debuguei e vem tudo certo do banco… ele manda o objeto com todos os dados pra tela…
Ja não sei mas onde procurar.
agradeceria um help se possivel.
Obs: usando primefaces
Fonte abaixo.
<ui:composition template="/template/form.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="form-content">
<h:panelGrid id="Lancamentos" columns="3">
<h:outputLabel value="Cliente:" />
<p:selectOneMenu id="clientes" value="#{Inserirhoras.cliente}">
<f:selectItem itemLabel="Selecione" itemValue="0" />
<f:selectItems value="#{Inserirhoras.combo1}" var="x" itemLabel="#{x.nome}" itemValue="#{x.id}"/>
<p:ajax update="projetos" listener="#{Inserirhoras.changeProjetos}" />
</p:selectOneMenu>
<p:message for="clientes" autoUpdate="true" />
<h:outputLabel value="Projeto:" />
<p:selectOneMenu id="projetos" value="#{Inserirhoras.projeto}">
<f:selectItem itemLabel="Selecione" itemValue="0" />
<f:selectItems value="#{Inserirhoras.combo2}" var="project" itemLabel="#{project.nomeProjeto}" itemValue="#{project.id}" />
<p:ajax update="atividades" listener="#{Inserirhoras.mat}" />
</p:selectOneMenu>
<p:message for="projetos" autoUpdate="true" />
<h:outputLabel value="Atividade:" />
<p:selectOneMenu id="atividades" value="#{Inserirhoras.atividades}">
<f:selectItem itemLabel="Selecione" itemValue="" />
<f:selectItems value="#{Inserirhoras.combo3}" var="atv" itemLabel="#{atv.nome}" itemValue="#{atv.id}"/>
</p:selectOneMenu>
<p:message for="atividades" autoUpdate="true" />
</h:panelGrid>
</ui:define>
</ui:composition>
Metodo do bean
public void changeProjetos() {
if(Cliente !=null && !Cliente.equals("0")) {
form.setId(Cliente);
HorasTrabalhadasService service;
service = new HorasTrabalhadasService();
projetosForm = service.findProjetos(form.toClientesVO());
this.setProjetosForm(projetosForm);
}
}
public void mat() { // Mudando o nome pra testar
if(Projeto !=null && !Projeto.equals("0")) {
System.out.println(Projeto);
projForm.setId(Projeto);
System.out.println(Projeto);
HorasTrabalhadasService service;
service = new HorasTrabalhadasService();
atividadesForm = service.findAtividades(projForm.toProjetosVO());
this.setAtividadesForm(atividadesForm);
}
}