Точка входа в мое приложение JSF - EntryPoint.jsp
.Мы используем JSF 1.2.Пользователь может позвонить EntryPoint.jsp
с несколькими различными параметрами URL.Мне бы хотелось проанализировать эти параметры, загрузить сессионный компонент с некоторым состоянием, сделать все это до загрузки страницы и либо продолжить обработку / отображение EntryPoint.jsp
, либо переместиться / перенаправить на другую страницу в приложении.Кто-нибудь может порекомендовать лучший дизайн для этого?
Я пробовал в своем компоненте поддержки EntryPoint.java (исключение обработки исключено):
@PostConstruct
public void init() {
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
companyName = request.getParameter("companyCode");
//process parameters...
if (someCondition) {
FacesContext.getCurrentInstance().getExternalContext().dispatch("/other.jsp");
return;
}
}
, но я получаю IllegalStateException: Response already committed
.
Я также пытался
FacesContext.getCurrentInstance().getExternalContext().redirect("/other.jsp");
, но также получал исключение IllegalStateException (без сообщения).Очевидно, что это не подходящий способ или место для этого.Кто-нибудь может порекомендовать лучший способ добиться того, что я ищу?
В этом посте кажется, что фильтр сервлетов может быть хорошим выбором.Если это так, будет ли компонент поддержки JSF области сеанса доступен в фильтре сервлета?