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

Parâmetros não estão passando da página xhtml para o bean

Bom dia. Alguém pode me ajudar? Estou com problemas no repasse de parâmetros da página xhtml para o managedBean. Não está passando o número do usuário e a senha preenchidas no inputText e password. Estava dando tudo certo no login ontem, mas hoje, sem eu mudar nada, não deu log de erro, mas veio as mensagens: mensagens da página web

"Usuário inexistente."

Mensagens no log do eclipse:

Número Pessoal null
Senha: null
Lista = 0
null

Vejam se existe algum erro no código.

package phenraro.erp.controller;

import java.io.IOException;
import java.io.Serializable;

import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

import phenraro.erp.model.Usuario;
import phenraro.erp.repository.Usuarios;
import phenraro.erp.util.FacesMessages;

@Named
@SessionScoped
public class LoginBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private Usuario usuário;

    @Inject
    private Usuarios usuários;

    @Inject
    private FacesMessages messages;

    private String númeroPessoal;

    private String senha;



    public String getNúmeroPessoal() {
        return númeroPessoal;
    }

    public void setNúmeroPessoal(String númeroPessoal) {
        this.númeroPessoal = númeroPessoal;
    }

    public Usuarios getUsuários() {
        return usuários;
    }

    public void setUsuários(Usuarios usuários) {
        this.usuários = usuários;
    }

    public FacesMessages getMessages() {
        return messages;
    }

    public void setMessages(FacesMessages messages) {
        this.messages = messages;
    }

    public void setUsuário(Usuario usuário) {
        this.usuário = usuário;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String login() {
        System.out.println("Número Pessoal " + númeroPessoal);
        System.out.println("Senha: " + senha);
        usuário = usuários.getUsuário(númeroPessoal);
        System.out.println(usuário);        
        if (usuário == null) {
            messages.info("Usuário inexistente.");
        } else if (!confereSenha()) {
            messages.info("Usuário existente e senha inválida.");
        } else if (confereSenha()) {
            messages.info("Usuário existente e senha válida.");
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("Menu.xhtml");
            } catch (IOException ex) {
                messages.info("Erro ao exibir tela do Menu Principal. \n" 
                        + ex + "\nUsuário e ou senha errados!");
            }
            return "Menu?faces-redirect=true";
        } else {
            messages.info("Usuário inexistente ou senha inválida.");    
        }
        return null;
    }

    public Usuario getUsuário() {
        return usuário;
    }

    public void setUsuários(Usuario usuário) {
        this.usuário = usuário;
    }

    public boolean isUsuárioSelecionado() {
        return usuário != null && usuário.getId() != null;
    }

    /**
     * Método responsável por conferir a senha do usuário
     * @param númeroPessoal
     * @param senhaUsuário
     * @return
     */
    public boolean confereSenha() {        
        return (this.usuário.getSenhaCriptografada().equals(usuário.criptografar(senha)));
    }
}

Login.xhtml

<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    template="WEB-INF/template/Layout.xhtml">

    <ui:define name="titulo">
        Login
    </ui:define>

    <ui:define name="conteudo">


        <h:form id="frm">

            <p:messages id="loginMessages" />

            <p:defaultCommand target="loginCommandButton" scope="frm" />

            <h:panelGrid id="usuarioPanelGrid" columns="2">

                <p:outputLabel value="Usuário: " for="numeroPessoal" />
                <p:inputText id="numeroPessoal" size="20" maxlength="20" value="#{loginBean.númeroPessoal}" />

                <p:outputLabel value="Senha: " for="senha" />
                <p:password id="senha" size="20" maxlength="20" value="#{loginBean.senha}" />

                <h:outputLabel />
                <p:commandButton id="loginCommandButton" value="Login"
                    actionListener="#{loginBean.login}"
                    update="frm" process="frm"  />

            </h:panelGrid>

        </h:form>

    </ui:define>

</ui:composition>
  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!

1 resposta

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