[RESOLVIDO]p:selectOneMenu, MB parou de entrar no método de salvar

7 respostas
J

Olá pessoal, seguinte, tenho uma pagina xhtml, onde eu faço um cadastro básico.
Antes eu usava um p:inputText e conseguia gravar perfeitamente no banco.
Então resolvi trocar meu p:inputText por um p:selectOneMenu para limitar as opções do usuario.
Eis que ele lista perfeitamente os dados que vem do banco, porém quando clico em salvar, ele não entra no método salvar do meu MB mais, porém nao da nenhuma msg de erro, nenhuma exceção nem nada.

Código xhtml
<ui:composition template="/template/template.xhtml">
        <ui:define name="conteudo">
            <p:panel id="painelCadastroChars" header="#{msgs.CHAR_TITULO_PAINEL}" >
                <h:panelGrid columns="3">

                    <h:outputLabel value="#{msgs.CHAR_NOME}"/>
                    <p:inputText id="txtNomeChar" value="#{personagemMB.personagem.nome}" required="true" requiredMessage="#{msgs.CAMPO_VAZIO}"/> 
                    <p:message for="txtNomeChar" />

                    <h:outputLabel  value="#{msgs.CHAR_CLASSE}"/>
                    <p:selectOneMenu id="classe" value="#{personagemMB.personagem.classe}"  >
                        <f:selectItem itemLabel="Select" itemValue=""/>
                        <f:selectItems value="#{personagemMB.listarClasses()}" var="classes" itemLabel="#{classes.nome}" itemValue="#{classes}" />
                    </p:selectOneMenu> 
                    <p:message for="classe" />

                    <h:outputLabel  value="#{msgs.CHAR_SEXO}"/>
                    <p:inputText  id="sexo" value="#{personagemMB.personagem.sexo}" required="true" requiredMessage="#{msgs.CAMPO_VAZIO}"/> 
                    <p:message for="sexo" />

                    <h:outputLabel  value="#{msgs.CHAR_RACA}"/>
                    <p:inputText  id="raca" value="#{personagemMB.personagem.raca}" required="true" requiredMessage="#{msgs.CAMPO_VAZIO}"/> 
                    <p:message for="raca" />

                    <h:outputLabel  value="#{msgs.CHAR_LEVEL}"/>
                    <p:inputText  id="level" value="#{personagemMB.personagem.level}" required="true" requiredMessage="#{msgs.CAMPO_VAZIO}"/> 
                    <p:message for="level" />

                </h:panelGrid>
                <p:commandButton id="btnCadastrar" value="#{msgs.CADASTRO_BOTAO_SALVAR}" action="#{personagemMB.salvarPersonagem()}" />

código do meu MB

@ManagedBean
@RequestScoped
public class PersonagemMB implements Serializable{
    private Personagem personagem = new Personagem();
    private List<Classe> classes = new ArrayList<Classe>();
    private PersonagemDAO dao = new PersonagemDAO();

    public List<Classe> getClasses() {
        return classes;
    }

    public void setClasses(List<Classe> classes) {
        this.classes = classes;
    }

    public PersonagemDAO getDao() {
        return dao;
    }

    public void setDao(PersonagemDAO dao) {
        this.dao = dao;
    }
    
    public Personagem getPersonagem() {
        return personagem;
    }

    public void setPersonagem(Personagem personagem) {
        this.personagem = personagem;
    }
    
    public boolean salvarPersonagem(){
        return dao.salvar(personagem);
    }
    
    public List<Classe> listarClasses(){
        classes = dao.listarClasses();
        return classes;
    }

peço a ajuda de todos.. hehe valew

7 Respostas

ninvit

Fala, Jilles. Bom dia!

Tente mudar para

actionListener="#{personagemMB.salvarPersonagem}
J

Tentei, ainda não entra no método de salvar do meu bean

ninvit

Sua dao está funcionando?
Com um sysout no MB não printa nada?

J

Entao, minha dao esta normal, pq antes eu usava no lugar do selectOneMenu um p:inputText
e gravava no banco tranquilamente, a partir do momento em que troquei é que esta acontecendo isso.
Mas ele tb esta puxando todos os dados do banco para exibir na lista.
O sysout nao printa nada tb

XOOM

jilles:
Entao, minha dao esta normal, pq antes eu usava no lugar do selectOneMenu um p:inputText
e gravava no banco tranquilamente, a partir do momento em que troquei é que esta acontecendo isso.
Mas ele tb esta puxando todos os dados do banco para exibir na lista.
O sysout nao printa nada tb

Mas você mudou o DAO para receber o Objeto? Como vc msm disse, salvava um texto e como está no seu selectOne no itemValue está o objeto, tem que dar uma olhada no converter tb.

ninvit

não tem erro no console?

J

Mankada minha, realmente estava vindo um objeto e nao converti em string

fiz a conversao para string e foi de boa

Valews gente

Criado 25 de janeiro de 2013
Ultima resposta 25 de jan. de 2013
Respostas 7
Participantes 3