2014-01-02 2 views
0

Я видел эти сообщения: Issues with JSF navigation rules using redirect on HTTPS и JSF 2 and Post/Redirect/Get?, но не смог получить то, что я хочу сделать, чтобы работать. Я пытаюсь перенаправить на страницу https в моем приложении, используя ConfigurableNavigationHandler. Вот мой handleNavigation:JSF 2 перенаправление на HTTPS

public void handleNavigation(FacesContext context, String from, String outcome) { 
    System.out.println("outcome: " + outcome); 
    if (outcome.startsWith("manageEmail")) { 
    outcome = "https://localhost:8081/appmonitor/faces/manageEmail.xhtml"; 
    } 
    System.out.println("outcome: " + outcome); 
    parent.handleNavigation(context, from, newOutcome); 
} 

Когда я нажимаю на ссылку, которая перенаправляет на «manageEmail», я вижу, что результат начинается как «manageEmail», а также изменения в моем HTTPS-адрес, но это не на самом деле перенаправить туда. Я подозреваю, что он пытается перейти на http://localhost:8080/appmonitor/faces/https://localhost:8081/appmonitor/faces/manageEmail.xhtml. Если это то, что происходит на самом деле, есть ли способ отменить это поведение?

ответ

1

Вы пытались получить доступ к внешнему ответу и вернуть команду перенаправления?

HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); 
response.sendRedirect(outcome); 
+0

Я не осознавал, что должен был это сделать. Я предположил, что 'parent.handleNavigation (context, from, newOutcome),' собирался позаботиться об этом для меня. Теперь я знаю - Спасибо! – taylordurden

Смежные вопросы