Я использую это, и это работает для меня:
я проблема с реализацией простого перенаправления 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
не работать с портлетами.