Я использую это, и это работает для меня:

я проблема с реализацией простого перенаправления HTTP.

Я использую Liferay 6.0.6, нашпортлетов строятся сJSF2.0 / PortletFaces.

Я хочу вызвать перенаправлениекогда представление загружено (а не когда действие инициируется). В настоящее время моя функция вызывается слушателем PreRenderView.

<f:metadata>
  <f:event listener="#{myControler.dispatch}" type="preRenderView" />
</f:metadata>

В этой функции я могу проверять разрешения, делать другие вещи, а в некоторых случаях я хочу перенаправить пользователя на новую страницу (а не в другое представление).

Я пробовал несколько способов, но безуспешно. В частности, я думал, что этот метод будет работать:

getFacesContext().getExternalContext().redirect(url);
getFacesContext().responseComplete()
// => Can only redirect during ACTION_PHASE

Эта ошибка логична, но есть ли решениесила перенаправление.

Это может быть реализовано в другой функции, называемой иначе, мне нужен только Hibernate Session (устанавливается в начале фазы рендеринга)

У вас есть идеи, чтобы решить эту проблему?
Спасибо!

пс:<redirect /> или же?faces-redirect не работать с портлетами.

Ответы на вопрос(2)

Ваш ответ на вопрос