SelectOneMenu envia valor null

8 respostas
E

Pessoal, já procurei a solução em vários outros tópicos, mas ainda não achei a resposta…

Tenho o seguinte SelectOneMenu…

<h:selectOneMenu id="paisNaturalidade" value="#{alunoMB.aluno.paisDeNaturalidade}" valueChangeListener="#{estadoMB.selecionarPaisNaturalidade}" converter="converterObjeto"> <f:selectItem itemLabel="----------------" /> <f:selectItems value="#{paisMB.paises}" /> <p:ajax event="change" update="estadoNaturalidade" /> </h:selectOneMenu>

Quando o form é enviado (submit), o value (alunoMB.aluno.paisDeNaturalidade) está indo com valor null
já verifiquei o converter, está funcionando.

Alguém pode ajudar?

8 Respostas

F

Bom… Visualmente eu vejo que está faltando a EL no converter…

converter="#{converterObjeto}"

Atenciosamente,

Fábio

D

edercs:
Pessoal, já procurei a solução em vários outros tópicos, mas ainda não achei a resposta…

Tenho o seguinte SelectOneMenu…

<h:selectOneMenu id="paisNaturalidade" value="#{alunoMB.aluno.paisDeNaturalidade}" valueChangeListener="#{estadoMB.selecionarPaisNaturalidade}" converter="converterObjeto"> <f:selectItem itemLabel="----------------" /> <f:selectItems value="#{paisMB.paises}" /> <p:ajax event="change" update="estadoNaturalidade" /> </h:selectOneMenu>

Quando o form é enviado (submit), o value (alunoMB.aluno.paisDeNaturalidade) está indo com valor null
já verifiquei o converter, está funcionando.

Alguém pode ajudar?

Cara… pelo que vi esta faltando o dentro da tag <f:selectItem> o parametro ItemValue (que é o que vai para sua variavel instanciada)

exemplo

<f:selectItem itemLabel=“Carro” itemValue=“0”>

ou seja… vai um valor 0 para a variavel…

E

Antes estava assim…

<f:selectItems value="#{paisMB.paises}" var="pais" itemValue="#{pais}" />

…não deu certo tbm

são vários SelectOneMenu que estão com o mesmo problema, tem um que está assim…

<h:selectOneMenu id="tipoDocMil" value="#{alunoMB.aluno.categoriaReservista}" > <f:selectItem itemLabel="1° Categoria" itemValue="1" /> <f:selectItem itemLabel="2° Categoria" itemValue="2" /> <f:selectItem itemLabel="3° Categoria" itemValue="3" /> </h:selectOneMenu>

e não funciona tbm…

P

Mostra o código da sua classe alunoMB pra gente entender.
Eu acho que pode ser algo relacionado com o valor do selectOneMenu, mas nao dá pra saber sem ver o código da classe.

E
@ManagedBean
@ViewScoped
public class AlunoMB implements Serializable {

    @EJB
    private AlunoFacadeLocal dao;

    private Aluno aluno = new Aluno();

    public AlunoMB() {
    }

    public void salvar() {

            dao.create(aluno);
    }

    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }
}

Esse é o código do MB.
não é necessário colocar o EL no atributo converter, ele funciona do jeito que está, se não, o SelectOneMenu não seria preenchido.
o problema é que simplesmente o valor vai nulo para o MB.

#{alunoMB.aluno.paisDeNaturalidade}
- paisDeNaturalidade é um atributo da entidade Aluno, o qual está recebendo o valor.
E

Descobri um problema…

Estou utilizando um componente p:wizard do primefaces, esse p:wizard está dentro de um form, o qual será submetido, no último p:tab do p:wizard tem o botão pra submeter o form, daí acontece o problema
que já descrevi anteriormente, então inseri um outro form na página contendo apenas 1 h:commandButton para chamar o mesmo método salvar, então percebi que os dados foram enviados corretamente
os atributos da classe aluno, foram populados corretamente, então eis a questão…
pq ao submeter o form com o h:commandButton que está dentro do mesmo form dos componentes SelectOneMenu não funciona?
pq os valores chegam no MB como null?

C

Olá amigo,

Não sei se já resolveu … mas eu quando tive este problema eu consegui resolver enviando de forma parcial … adicionando a tag , process="@this" … no Button …

E

Valeu, cara…

mas já resolvi, faz tempo.

Criado 9 de fevereiro de 2011
Ultima resposta 1 de jun. de 2011
Respostas 8
Participantes 5