org.apache.struts2.dispatcher.mapper

## Class PrefixBasedActionMapper

- java.lang.Object
- - org.apache.struts2.dispatcher.mapper.DefaultActionMapper
  - - org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper

- All Implemented Interfaces:
    ActionMapper

      public class PrefixBasedActionMapper
      extends DefaultActionMapper
      implements ActionMapper

  A prefix based action mapper that is capable of delegating to other `ActionMapper`s based on the request's prefix.
  It is configured through struts.xml
  For example, with the following entries in struts.properties

       <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
       <constant name="struts.mapper.prefixMapping" value="/communities:pseudoRestful,/communityTags:pseudoRestful,/events:pseudoRestful,/mediaList:pseudoRestful,/users:pseudoRestful,/community:struts,/communityTag:struts,/event:struts,/media:struts,/user:struts,:struts"/>

  When `getMapping(HttpServletRequest, ConfigurationManager)` or `getUriFromActionMapping(ActionMapping)` is invoked, `PrefixBasedActionMapper` will check each possible prefix (url prefix terminating just before a /) to find the most specific ActionMapper that returns a mapping when asked to map the request. If none are found, null is returned for both `getMapping(HttpServletRequest, ConfigurationManager)` and `getUriFromActionMapping(ActionMapping)` methods.

  See Also:
    `ActionMapper`, `ActionMapping`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map<String,ActionMapper>` | `actionMappers`
    `protected Container` | `container`

    - ### Fields inherited from class org.apache.struts2.dispatcher.mapper.DefaultActionMapper

      `ACTION_PREFIX, allowDynamicMethodCalls, allowedActionNames, allowedMethodNames, allowedNamespaceNames, allowSlashesInActionNames, alwaysSelectFullNamespace, defaultActionName, defaultMethodName, defaultNamespaceName, extensions, METHOD_PREFIX, prefixTrie`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrefixBasedActionMapper()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ActionMapping` | `getMapping(javax.servlet.http.HttpServletRequest request, ConfigurationManager configManager)` Expose the ActionMapping for the current request
    `String` | `getUriFromActionMapping(ActionMapping mapping)` Convert an ActionMapping into a URI string
    `void` | `setContainer(Container container)`
    `void` | `setPrefixBasedActionMappers(String list)`

    - ### Methods inherited from class org.apache.struts2.dispatcher.mapper.DefaultActionMapper

      `addParameterAction, cleanupActionName, cleanupMethodName, cleanupNamespaceName, dropExtension, getDefaultExtension, getMappingFromActionName, handleDynamicMethod, handleExtension, handleName, handleNamespace, handleParams, handleSpecialParameters, isSlashesInActionNames, lookupExtension, parseActionName, parseNameAndNamespace, setAllowActionCrossNamespaceAccess, setAllowActionPrefix, setAllowDynamicMethodCalls, setAllowedActionNames, setAllowedMethodNames, setAllowedNamespaceNames, setAlwaysSelectFullNamespace, setDefaultActionName, setDefaultMethodName, setDefaultNamespaceName, setExtensions, setSlashesInActionNames`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.struts2.dispatcher.mapper.ActionMapper

      `getMappingFromActionName`

- - ### Field Detail

    - #### container

          protected Container container

    - #### actionMappers

          protected Map<String,ActionMapper> actionMappers

  - ### Constructor Detail

    - #### PrefixBasedActionMapper

          public PrefixBasedActionMapper()

  - ### Method Detail

    - #### setContainer

          public void setContainer(Container container)

      Overrides:
        `setContainer` in class `DefaultActionMapper`

    - #### setPrefixBasedActionMappers

          public void setPrefixBasedActionMappers(String list)

    - #### getMapping

          public ActionMapping getMapping(javax.servlet.http.HttpServletRequest request,
                                 ConfigurationManager configManager)

      Description copied from interface: `ActionMapper`
      Expose the ActionMapping for the current request
      Specified by:
        `getMapping` in interface `ActionMapper`
      Overrides:
        `getMapping` in class `DefaultActionMapper`
      Parameters:
        `request` - The servlet request
        `configManager` - The current configuration manager
      Returns:
        The appropriate action mapping or null if mapping cannot be determined

    - #### getUriFromActionMapping

          public String getUriFromActionMapping(ActionMapping mapping)

      Description copied from interface: `ActionMapper`
      Convert an ActionMapping into a URI string
      Specified by:
        `getUriFromActionMapping` in interface `ActionMapper`
      Overrides:
        `getUriFromActionMapping` in class `DefaultActionMapper`
      Parameters:
        `mapping` - The action mapping
      Returns:
        The URI string that represents this mapping

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