Я использую JSF2. Я реализовал собственный сервлет сервлетов:
public class MyFacesServletWrapper extends MyFacesServlet {
// ...
}
когда я выполняю некоторые проверки полномочий и отправляю перенаправление, когда пользователь не вошел в систему:
public void service(ServletRequest request, ServletResponse response) {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
if (...) {
String loginURL = req.getContextPath() + "/LoginPage.faces";
res.sendRedirect(loginURL);
}
}
Это работает, когда пользователь пытается перейти на другую страницу. Однако это не работает, когда форма JSF отправляется с помощью кнопки/кнопки командной строки JSF. Строка sendRedirect()
удаляется и выполняется, исключение не генерируется, но пользователь остается на той же странице. В принципе, визуальных изменений вообще нет.
Почему это работает при переходе на страницу, но не в форме submit?