Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts2.portlet.dispatcher
Class Jsr168Dispatcher

    java.lang.Object
      javax.portlet.GenericPortlet
          org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher

All Implemented Interfaces:
  javax.portlet.EventPortlet, javax.portlet.Portlet, javax.portlet.PortletConfig, javax.portlet.ResourceServingPortlet, StrutsStatics

Direct Known Subclasses:
  Jsr286Dispatcher

    public class Jsr168Dispatcher

extends javax.portlet.GenericPortlet
implements StrutsStatics

Struts JSR-168 portlet dispatcher. Similar to the WW2 Servlet dispatcher, but adjusted to a portal environment. The portlet is configured through the `portlet.xml` descriptor. Examples and descriptions follow below:

Author:
  Nils-Helge Garli, Rainer Hermanns

  Init parameters

  Name | Description | Default value
  --- | --- | ---
  portletNamespace | The namespace for the portlet in the xwork configuration. This namespace is prepended to all action lookups, and makes it possible to host multiple portlets in the same portlet application. If this parameter is set, the complete namespace will be `/portletNamespace/modeNamespace/actionName` | The default namespace
  viewNamespace | Base namespace in the xwork configuration for the `view` portlet mode | The default namespace
  editNamespace | Base namespace in the xwork configuration for the `edit` portlet mode | The default namespace
  helpNamespace | Base namespace in the xwork configuration for the `help` portlet mode | The default namespace
  defaultViewAction | Default action to invoke in the `view` portlet mode if no action is specified | `default`
  defaultEditAction | Default action to invoke in the `edit` portlet mode if no action is specified | `default`
  defaultHelpAction | Default action to invoke in the `help` portlet mode if no action is specified | `default`

  Example:

       <init-param>
           <!-- The view mode namespace. Maps to a namespace in the xwork config file -->
           <name>viewNamespace</name>
           <value>/view</value>
       </init-param>
       <init-param>
          <!-- The default action to invoke in view mode -->
          <name>defaultViewAction</name>
          <value>index</value>
       </init-param>
       <init-param>
           <!-- The view mode namespace. Maps to a namespace in the xwork config file -->
           <name>editNamespace</name>
           <value>/edit</value>
       </init-param>
       <init-param>
           <!-- The default action to invoke in view mode -->
           <name>defaultEditAction</name>
           <value>index</value>
       </init-param>
       <init-param>
           <!-- The view mode namespace. Maps to a namespace in the xwork config file -->
           <name>helpNamespace</name>
           <value>/help</value>
       </init-param>
       <init-param>
           <!-- The default action to invoke in view mode -->
           <name>defaultHelpAction</name>
           <value>index</value>
       </init-param>

Field Summary
`protected String` | `portletNamespace`

Fields inherited from interface org.apache.struts2.StrutsStatics
`HTTP_REQUEST, HTTP_RESPONSE, PAGE_CONTEXT, SERVLET_CONTEXT, SERVLET_DISPATCHER, STRUTS_ACTION_TAG_INVOCATION, STRUTS_PORTLET_CONTEXT`

Constructor Summary
`Jsr168Dispatcher()`

Method Summary
`HashMap<String,Object>` | `createContextMap(Map<String,Object> requestMap, Map<String,String[]> parameterMap, Map<String,Object> sessionMap, Map<String,Object> applicationMap, javax.portlet.PortletRequest request, javax.portlet.PortletResponse response, javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse, javax.servlet.ServletContext servletContext, javax.portlet.PortletConfig portletConfig, PortletPhase phase)` Merges all application and portlet attributes into a single `HashMap` to represent the entire `Action` context.
`protected PortletServletResponse` | `createPortletServletResponse(javax.portlet.PortletResponse response)` Method to create a PortletServletResponse matching the used Portlet API, to be overridden for JSR286 Dispatcher.
`void` | `destroy()`
`protected ActionMapping` | `getActionMapping(javax.portlet.PortletRequest portletRequest, javax.servlet.http.HttpServletRequest servletRequest)` Gets the namespace of the action from the request.
`protected Map<String,Object>` | `getApplicationMap()` Returns a Map of all application attributes.
`protected String` | `getDefaultActionPath(javax.portlet.PortletRequest portletRequest)`
`protected Map<String,String[]>` | `getParameterMap(javax.portlet.PortletRequest request)` Returns a Map of all request parameters.
`protected Map<String,Object>` | `getRequestMap(javax.portlet.PortletRequest request)` Returns a Map of all request attributes.
`protected Map<String,Object>` | `getSessionMap(javax.portlet.PortletRequest request)` Returns a Map of all session attributes.
`void` | `init(javax.portlet.PortletConfig cfg)` Initialize the portlet with the init parameters from `portlet.xml`
`void` | `processAction(javax.portlet.ActionRequest request, javax.portlet.ActionResponse response)` Service an action from the `event` phase.
`void` | `render(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response)` Service an action from the `render` phase.
`void` | `serviceAction(javax.portlet.PortletRequest request, javax.portlet.PortletResponse response, Map<String,Object> requestMap, Map<String,String[]> parameterMap, Map<String,Object> sessionMap, Map<String,Object> applicationMap, String portletNamespace, PortletPhase phase)` Loads the action and executes it.
`void` | `setActionMapper(ActionMapper actionMapper)`
`protected void` | `setActionProxyFactory(com.opensymphony.xwork2.ActionProxyFactory factory)` Convenience method to ease testing.

Methods inherited from class javax.portlet.GenericPortlet
`doDispatch, doEdit, doHeaders, doHelp, doView, getContainerRuntimeOptions, getDefaultNamespace, getInitParameter, getInitParameterNames, getNextPossiblePortletModes, getPortletConfig, getPortletContext, getPortletName, getProcessingEventQNames, getPublicRenderParameterNames, getPublishingEventQNames, getResourceBundle, getSupportedLocales, getTitle, init, processEvent, serveResource`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### portletNamespace

    protected String portletNamespace

Constructor Detail

### Jsr168Dispatcher

    public Jsr168Dispatcher()

Method Detail

### init

    public void init(javax.portlet.PortletConfig cfg)
              throws javax.portlet.PortletException

  Initialize the portlet with the init parameters from `portlet.xml`

  Specified by:
    `init` in interface `javax.portlet.Portlet`
  Overrides:
    `init` in class `javax.portlet.GenericPortlet`
  Throws:
    `javax.portlet.PortletException`

### processAction

    public void processAction(javax.portlet.ActionRequest request,
                              javax.portlet.ActionResponse response)
                       throws javax.portlet.PortletException,
                              IOException

  Service an action from the `event` phase.

  Specified by:
    `processAction` in interface `javax.portlet.Portlet`
  Overrides:
    `processAction` in class `javax.portlet.GenericPortlet`
  Throws:
    `javax.portlet.PortletException`
    `IOException`
  See Also:
    `Portlet.processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)`

### render

    public void render(javax.portlet.RenderRequest request,
                       javax.portlet.RenderResponse response)
                throws javax.portlet.PortletException,
                       IOException

  Service an action from the `render` phase.

  Specified by:
    `render` in interface `javax.portlet.Portlet`
  Overrides:
    `render` in class `javax.portlet.GenericPortlet`
  Throws:
    `javax.portlet.PortletException`
    `IOException`
  See Also:
    `Portlet.render(javax.portlet.RenderRequest, javax.portlet.RenderResponse)`

### createContextMap

    public HashMap<String,Object> createContextMap(Map<String,Object> requestMap,
                                                   Map<String,String[]> parameterMap,
                                                   Map<String,Object> sessionMap,
                                                   Map<String,Object> applicationMap,
                                                   javax.portlet.PortletRequest request,
                                                   javax.portlet.PortletResponse response,
                                                   javax.servlet.http.HttpServletRequest servletRequest,
                                                   javax.servlet.http.HttpServletResponse servletResponse,
                                                   javax.servlet.ServletContext servletContext,
                                                   javax.portlet.PortletConfig portletConfig,
                                                   PortletPhase phase)
                                            throws IOException

  Merges all application and portlet attributes into a single `HashMap` to represent the entire `Action` context.

  Parameters:
    `requestMap` - a Map of all request attributes.
    `parameterMap` - a Map of all request parameters.
    `sessionMap` - a Map of all session attributes.
    `applicationMap` - a Map of all servlet context attributes.
    `request` - the PortletRequest object.
    `response` - the PortletResponse object.
    `portletConfig` - the PortletConfig object.
    `phase` - The portlet phase (render or action, see `PortletConstants`)
  Returns:
    a HashMap representing the `Action` context.
  Throws:
    `IOException`

### serviceAction

    public void serviceAction(javax.portlet.PortletRequest request,
                              javax.portlet.PortletResponse response,
                              Map<String,Object> requestMap,
                              Map<String,String[]> parameterMap,
                              Map<String,Object> sessionMap,
                              Map<String,Object> applicationMap,
                              String portletNamespace,
                              PortletPhase phase)
                       throws javax.portlet.PortletException

  Loads the action and executes it. This method first creates the action context from the given parameters then loads an `ActionProxy` from the given action name and namespace. After that, the action is executed and output channels throught the response object.

  Parameters:
    `request` - the HttpServletRequest object.
    `response` - the HttpServletResponse object.
    `requestMap` - a Map of request attributes.
    `parameterMap` - a Map of request parameters.
    `sessionMap` - a Map of all session attributes.
    `applicationMap` - a Map of all application attributes.
    `portletNamespace` - the namespace or context of the action.
    `phase` - The portlet phase (render or action, see `PortletConstants`)
  Throws:
    `javax.portlet.PortletException`

### getApplicationMap

    protected Map<String,Object> getApplicationMap()

  Returns a Map of all application attributes. Copies all attributes from the `PortletActionContext`into an `ApplicationMap`.

  Returns:
    a Map of all application attributes.

### getActionMapping

    protected ActionMapping getActionMapping(javax.portlet.PortletRequest portletRequest,
                                             javax.servlet.http.HttpServletRequest servletRequest)

  Gets the namespace of the action from the request. The namespace is the same as the portlet mode. E.g, view mode is mapped to namespace `view`, and edit mode is mapped to the namespace `edit`

  Parameters:
    `portletRequest` - the PortletRequest object.
    `servletRequest` - the ServletRequest to use
  Returns:
    the namespace of the action.

### getDefaultActionPath

    protected String getDefaultActionPath(javax.portlet.PortletRequest portletRequest)

### getParameterMap

    protected Map<String,String[]> getParameterMap(javax.portlet.PortletRequest request)
                                            throws IOException

  Returns a Map of all request parameters. This implementation just calls `PortletRequest.getParameterMap()`.

  Parameters:
    `request` - the PortletRequest object.
  Returns:
    a Map of all request parameters.
  Throws:
    `IOException` - if an exception occurs while retrieving the parameter map.

### getRequestMap

    protected Map<String,Object> getRequestMap(javax.portlet.PortletRequest request)

  Returns a Map of all request attributes. The default implementation is to wrap the request in a `RequestMap`. Override this method to customize how request attributes are mapped.

  Parameters:
    `request` - the PortletRequest object.
  Returns:
    a Map of all request attributes.

### getSessionMap

    protected Map<String,Object> getSessionMap(javax.portlet.PortletRequest request)

  Returns a Map of all session attributes. The default implementation is to wrap the reqeust in a `SessionMap`. Override this method to customize how session attributes are mapped.

  Parameters:
    `request` - the PortletRequest object.
  Returns:
    a Map of all session attributes.

### setActionProxyFactory

    protected void setActionProxyFactory(com.opensymphony.xwork2.ActionProxyFactory factory)

  Convenience method to ease testing.

  Parameters:
    `factory` -

### destroy

    public void destroy()

  Specified by:
    `destroy` in interface `javax.portlet.Portlet`
  Overrides:
    `destroy` in class `javax.portlet.GenericPortlet`

### setActionMapper

    public void setActionMapper(ActionMapper actionMapper)

  Parameters:
    `actionMapper` - the actionMapper to set

### createPortletServletResponse

    protected PortletServletResponse createPortletServletResponse(javax.portlet.PortletResponse response)

  Method to create a PortletServletResponse matching the used Portlet API, to be overridden for JSR286 Dispatcher.

  Parameters:
    `response` - The Response used for building the wrapper.
  Returns:
    The wrapper response for Servlet bound usage.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000–2017 Apache Software Foundation. All rights reserved.