The Portlet API only allows redirects to be requested from an action request.
Because views are rendered on the render request, views and view-state
s cannot trigger a redirect.
The externalRedirect:
view prefix is a convenience for Servlet based flows.
An IllegalStateException
is thrown if a redirect is requested from a render request.
end-state
redirects can be achieved by implementing FlowHandler.handleExecutionOutcome
.
This callback provides the ActionResponse
object which supports redirects.
The portlet container passes the execution key from the previous flow when switching to a new mode.
Even if the mode is mapped to a different FlowHandler
the flow execution will resume the previous execution.
You may switch the mode programatically in your FlowHandler after ending a flow in an ActionRequest.
One way to start a new flow is to create a URL targeting the mode without the execution key.
Web Flow supports JSF as the view technology for a portlet. However, a jsf-portlet bridge (JSR-301) must be provided. At the time of this writing, no feature complete jsf-portlet bridge exists. Some of the existing bridge implementations may appear to work, however, side effect may occur.
JSF portlets are considered experimental at this time.