логин netbeans и sql, метод не найден - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь проверить свой логин и получить эту ошибку сразу после нажатия кнопки логина.Я тестирую значения, которые мне нужны для аутентификации пользователя, которого я создал в базе данных mySQL.

javax.el.MethodNotFoundException: /loginuser.xhtml @ 23,92 action = "# {usuarioController.login} ": Метод не найден: com.Controller.UsuarioController@3c845446.login ()

Я использую контроллер MVC.Я определяю свой метод входа в систему следующим образом:

 public String Login() {
    Usuarios user = null;
    String redirect="";
     FacesContext context = FacesContext.getCurrentInstance();
       estado = usuarioFacade.login(usuario.getCorreo(), usuario.getPasswd());
    if(user!=null){
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("usuario",user);
        estado = (Usuarios) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario");
         context.addMessage(null, new FacesMessage("Login exitoso",  "Iniciando session..." + usuario.getUsername()) );
        redirect = "/index";            
    } else {
        System.out.println(" incorrectos");
        redirect = "#";
        context.addMessage(null, new FacesMessage("Usuario o contraseña incorrectos", "Verifique sus datos"));
    }
    return redirect;
                        }


 public Usuarios getUsuarioLogeado() {
    return estado;
}

public void setUsuarioLogeado(Usuarios usuarioLogeado) {
    this.estado = usuarioLogeado;
}

public String cerrarSesion (){
    FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
    estado = new Usuarios();
    return "/index?faces-redirect=true";
}

Также я определил запрос на фасаде объекта "Usuarios":

  public Usuarios login(String correo, String passwd) {
    Usuarios usuario=null;
  try {
        Query consulta = em.createNativeQuery("SELECT * FROM USUARIOS WHERE CORREO = 1? AND PASSWD = 2?", Usuarios.class);
    consulta.setParameter(1,correo);
    consulta.setParameter(2,passwd);
    usuario = (Usuarios) consulta.getSingleResult();
    } catch (Exception e) {
        System.out.println("error"+e.getMessage());
    }
return usuario;
}

, и это представление, которое яиспользуйте для входа в систему:

<ui:composition template="/template.xhtml">
    <ui:define name="title">
        <h:outputText value="Iniciar Session"></h:outputText>
    </ui:define>
    <ui:define name="body">
        <messages autoUpdate="true"/>
     <h3>Login here</h3>
    <h:form id="login-form">
       <h:outputText value="username:"/>
       <h:inputText value="#{usuarioController.usuario.correo}" id="username"/>
       <br/>
       <h:outputText value="password:"/>
       <h:inputSecret value="#{usuarioController.usuario.passwd}" id="password"/>
       <br/>
       <h:commandButton id="button" value="Login" action="#{usuarioController.login}"/>
       <br/>
       <h:messages />
       <br/>
    </h:form>
    </ui:define>
</ui:composition>

</html>

Что я действительно не понимаю, так это то, почему представление входа в систему не может найти или выполнить мой метод, как я определил в контроллере и фасаде.Должен ли я сделать что-то еще ???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...