Как перенаправить страницу jsf с кнопки

#jsf #jakarta-ee #redirect #oracle-adf

#jsf #джакарта-ee #перенаправление #oracle-adf

Вопрос:

Привет, я пытаюсь разработать страницу входа в систему с помощью oracle jdeveloper 12c и. Я работаю с технологией Java EE и страницами JSF. Я хочу перенаправить страницу с кнопки входа в систему после проверки наличия пользователя в базе данных, если пользователь был найден, он перенаправляется на главную страницу.Jsf еще перенаправляет на Login.jsf Проблема в обоих случаях перенаправляет на Login.jsf. PS: я не вносил никаких изменений в faces-config или adfc-config это моя функция аутентификации

     public String authentification(String login, String pwd) {

    try{
        Query query;
        query = em.createQuery("select o from UserEntity o where "   " o.login = :LOGIN AND o.pwd = :PWD");

        query.setParameter("LOGIN",login);
        query.setParameter("PWD",pwd);


              query.getSingleResult();


        return  ("success") ;  


    }
    catch(Exception e){
            e.printStackTrace();
            return null;
    }

}
 

я уверен, что функция аутентификации работает правильно

это мой Dologin() в ManagedBean

     public String DoLogin() {
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("authentification");
    Object result = operationBinding.execute();
    System.out.println("## Result = "   result);
    if (!operationBinding.getErrors().isEmpty()) {
        return "/faces/MainPage.jsf?faces-redirect=true";
    }
    return "/faces/Login.jsf?faces-redirect=true";

}
 

журнал не показывает мне никаких исключений или ошибок

Комментарии:

1. Устанавливаете ли вы параметр сопоставления сервлетов в web.xml ? (если ваш ответ «да», как это сделать)

2. Нет, я этого не делал :/

3. Понятно, что проверка !operationBinding.getErrors().isEmpty() возвращает false (что означает отсутствие ошибок). Кроме того, вы обрабатываете все исключения, сгенерированные методом аутентификации, и если вы ничего не видите в журналах, это означает, что исключение не генерируется. Реализация метода аутентификации не кажется правильной.

4. Нет, я уверен, что функция аутентификации корректно работает в журналах, когда я пишу недействительный логин и пароль, которые он мне показывает: javax.persistence. Исключение NoResultException: getSingleResult() не извлекает никаких объектов. ## Результат = null @Endrik

Ответ №1:

попробуйте этот код

 ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse)ectx.getResponse();

response.sendRedirect("../faces/login.jspx");