13.6. Issues in a Portlet Environment
Prev | 13. Portlet Integration | Next

## 13.6. Issues in a Portlet Environment

### Redirects

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.

### Switching Portlet Modes

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.

### Portlets and JSF

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.

Prev | Up | Next
13.5. Portlet Modes and Window States | Home | 14. Testing flows