1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

NullPointer ao receber valor selecionado selectOneMenu do JSF

Pessoal estou recebendo um nullpointer quando eu tento recuperar o valor do meu selectonemenu no bean

veja a parte do xhtml:

        <p:panelGrid columns="2" id="painel2"
            style="width: 100%; margin-top: 20px" columnClasses="rotulo, campo">
            <p:selectOneMenu id="grupoUsuario">
                <f:selectItem itemLabel="Selecione o grupo" />
                <f:selectItems value="#{cadastroUsuarioBean.grupos}" var="grupo"
                    itemLabel="#{grupo.nome}" itemValue="#{grupo}"
                    noSelectionOption="true" />
            </p:selectOneMenu>

            <p:commandButton value="Adicionar grupo" id="adicionarEndereco" action="#{cadastroUsuarioBean.adicionaGrupo}"/>
        </p:panelGrid>

e o meu bean, com o método adicionaGrupo:

@Named
@ViewScoped
public class CadastroUsuarioBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private Usuario usuario;
    private Grupo grupoSelecionado;

    private List<Grupo> grupos;

    @Inject
    private CadastroUsuarioService cadastroUsuarioService;

    @Inject
    private Grupos repositoryGrupos;

    public CadastroUsuarioBean() {
        // usuario = new Usuario();
        grupos = new ArrayList<Grupo>();

    }

    public void inicializar() {
        if (FacesUtil.isNotPostback()) {
            grupos = repositoryGrupos.listGrupos();
        }
    }

    public void salvar() {

        this.usuario = cadastroUsuarioService.salvar(this.usuario);
        limpar();
        FacesUtil.addInfoMessage("Usuário salvo com sucesso!");
    }

    public void adicionaGrupo() {
        this.usuario.getGrupos().add(this.grupoSelecionado);
    }

    private void limpar() {
        usuario = new Usuario();
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Grupo> getGrupos() {
        return grupos;
    }

    public void setGrupos(List<Grupo> grupos) {
        this.grupos = grupos;
    }

    public Grupo getGrupoSelecionado() {
        return grupoSelecionado;
    }

    public void setGrupoSelecionado(Grupo grupoSelecionado) {
        this.grupoSelecionado = grupoSelecionado;
    }

}

O que esta errado? ele deveria mandar o objeto pro bean, ja tentei instanciar o Grupo (grupoSelecionado) no construtor mas nao resolveu.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

4 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jsf primefaces ou faça a sua própria pergunta.