<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>ActionMapper</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce-2021.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/action-mapper.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
    
    <h1 class="no_toc" id="actionmapper">ActionMapper</h1>

<ul id="markdown-toc">
  <li><a href="#description" id="markdown-toc-description">Description</a></li>
  <li><a href="#defaultactionmapper" id="markdown-toc-defaultactionmapper">DefaultActionMapper</a>    <ul>
      <li><a href="#method-prefix" id="markdown-toc-method-prefix">Method prefix</a></li>
      <li><a href="#action-prefix" id="markdown-toc-action-prefix">Action prefix</a></li>
      <li><a href="#allowed-action-name-regex" id="markdown-toc-allowed-action-name-regex">Allowed action name RegEx</a></li>
      <li><a href="#allowed-method-name-regex" id="markdown-toc-allowed-method-name-regex">Allowed method name RegEx</a></li>
    </ul>
  </li>
  <li><a href="#custom-actionmapper" id="markdown-toc-custom-actionmapper">Custom ActionMapper</a></li>
  <li><a href="#compositeactionmapper" id="markdown-toc-compositeactionmapper">CompositeActionMapper</a></li>
  <li><a href="#prefixbasedactionmapper" id="markdown-toc-prefixbasedactionmapper">PrefixBasedActionMapper</a>    <ul>
      <li><a href="#prefixbasedactionproxyfactory" id="markdown-toc-prefixbasedactionproxyfactory">PrefixBasedActionProxyFactory</a></li>
    </ul>
  </li>
  <li><a href="#actionmapper-and-actionmapping-objects" id="markdown-toc-actionmapper-and-actionmapping-objects">ActionMapper and ActionMapping objects</a></li>
  <li><a href="#customize" id="markdown-toc-customize">Customize</a></li>
</ul>

<h2 id="description">Description</h2>

<p>The ActionMapper interface provides a mapping between HTTP requests and action invocation requests and vice-versa.</p>

<p>When given an HttpServletRequest, the ActionMapper may return null if no action invocation request matches or it may 
return an <code class="highlighter-rouge">ActionMapping</code> that describes an action invocation for the framework to try.</p>

<p>The ActionMapper is not required to guarantee that the <code class="highlighter-rouge">ActionMapping</code> returned be a real action or otherwise ensure 
a valid request. Accordingly, most ActionMappers do not need to consult the Struts configuration just to determine if 
a request should be mapped.</p>

<p>Just as requests can be mapped from HTTP to an action invocation, the opposite is true as well. However, because HTTP 
requests (when shown in HTTP responses) must be in String form, a String is returned rather than an actual request object.</p>

<h2 id="defaultactionmapper">DefaultActionMapper</h2>

<p>Default action mapper implementation, using the standard <code class="highlighter-rouge">*.[ext]</code> (where ext usually <strong>action</strong>) pattern. The extension 
is looked up from the Struts configuration key <code class="highlighter-rouge">struts.action.extension</code>.</p>

<p>To help with dealing with buttons and other related requirements, this mapper (and other <code class="highlighter-rouge">ActionMapper</code>s, we hope) has 
the ability to name a button with some predefined prefix and have that button name alter the execution behaviour.</p>

<p>The four prefixes are:</p>

<ul>
  <li>Method prefix - <code class="highlighter-rouge">method:default</code></li>
  <li>Action prefix - <code class="highlighter-rouge">action:dashboard</code></li>
</ul>

<p>In addition to these four prefixes, this mapper also understands the action naming pattern of <code class="highlighter-rouge">foo!bar</code> in either 
the extension form (eg: <code class="highlighter-rouge">foo!bar.action</code>) or in the prefix form (eg: <code class="highlighter-rouge">action:foo!bar</code>). This syntax tells this mapper 
to map to the action named <code class="highlighter-rouge">foo</code> and the method <code class="highlighter-rouge">bar</code>.</p>

<blockquote>
  <p>NOTE: By default support for the <code class="highlighter-rouge">action:</code> prefix has been disabled since Struts 2.3.15.3, please use the below 
constant to enable it:</p>
  <ul>
    <li>using <code class="highlighter-rouge">struts.properties</code>:
      <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>struts.mapper.action.prefix.enabled=true
</code></pre></div>      </div>
    </li>
    <li>or using <code class="highlighter-rouge">struts.xml</code>:
      <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;constant name="struts.mapper.action.prefix.enabled" value="true"/&gt;
</code></pre></div>      </div>
    </li>
  </ul>

  <p>See <a href="https://cwiki.apache.org/confluence/display/WW/S2-018">S2-018</a> for more details.</p>
</blockquote>

<h3 id="method-prefix">Method prefix</h3>

<p>With method-prefix, instead of calling baz action’s <code class="highlighter-rouge">execute()</code> method (by default if it isn’t overridden in <code class="highlighter-rouge">struts.xml</code>
to be something else), the baz action’s <code class="highlighter-rouge">anotherMethod()</code> will be called. A very elegant way determine which button is 
clicked. Alternatively, one would have submit button set a particular value on the action when clicked, and the <code class="highlighter-rouge">execute()</code>
method decides on what to do with the setted value depending on which button is clicked.</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"baz"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;s:textfield</span> <span class="na">label=</span><span class="s">"Enter your name"</span> <span class="na">name=</span><span class="s">"person.name"</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;s:submit</span> <span class="na">value=</span><span class="s">"Create person"</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;s:submit</span> <span class="na">method=</span><span class="s">"anotherMethod"</span> <span class="na">value=</span><span class="s">"Cancel"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/s:form&gt;</span>
</code></pre></div></div>

<h3 id="action-prefix">Action prefix</h3>

<p>With action-prefix, instead of executing baz action’s <code class="highlighter-rouge">execute()</code> method (by default if it isn’t overridden in <code class="highlighter-rouge">struts.xml</code> 
to be something else), the anotherAction action’s <code class="highlighter-rouge">execute()</code> method (assuming again if it isn’t overridden with something 
else in <code class="highlighter-rouge">struts.xml</code>) will be executed.</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"baz"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;s:textfield</span> <span class="na">label=</span><span class="s">"Enter your name"</span> <span class="na">name=</span><span class="s">"person.name"</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;s:submit</span> <span class="na">value=</span><span class="s">"Create person"</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;s:submit</span> <span class="na">action=</span><span class="s">"anotherAction"</span> <span class="na">value=</span><span class="s">"Cancel"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/s:form&gt;</span>
</code></pre></div></div>

<h3 id="allowed-action-name-regex">Allowed action name RegEx</h3>

<p>By default the mapper will check if extracted action name matches provided RegEx, i.e. <code class="highlighter-rouge">[a-zA-Z0-9._!/-]*</code>. You redefine 
this RegEx by defining a constant in <code class="highlighter-rouge">struts.xml</code> named <code class="highlighter-rouge">struts.allowed.action.names</code>. If action name doesn’t match 
the RegEx a default action name will be returned which is defined as <code class="highlighter-rouge">index</code>. You can also redefine this by specifying 
constant <code class="highlighter-rouge">struts.default.action.name</code> in <code class="highlighter-rouge">struts.xml</code>.</p>

<h3 id="allowed-method-name-regex">Allowed method name RegEx</h3>

<p>The same logic as above is used for extracted methods, the default RegEx (<code class="highlighter-rouge">[a-zA-Z_]*[0-9]*</code>) is used to check if method 
is allowed, you can change this by setting constant <code class="highlighter-rouge">struts.allowed.method.names</code> in <code class="highlighter-rouge">struts.xml</code>. If method doesn’t match 
the RegEx a default method is returned, i.e. <code class="highlighter-rouge">execute</code>. This can be changed by defining constant <code class="highlighter-rouge">struts.default.method.name</code>
in <code class="highlighter-rouge">struts.xml</code>.</p>

<p>Please note that this functionality only works when <a href="action-configuration.html#dynamic-method-invocation">Dynamic Method Invocation</a>
is enabled.</p>

<h2 id="custom-actionmapper">Custom ActionMapper</h2>

<p>You can define your own ActionMapper by implementing <code class="highlighter-rouge">org.apache.struts2.dispatcher.mapper.ActionMapper</code> then configuring 
Struts 2 to use the new class in <code class="highlighter-rouge">struts.xml</code></p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span class="na">name=</span><span class="s">"mymapper"</span> <span class="na">class=</span><span class="s">"com.mycompany.myapp.MyActionMapper"</span> <span class="nt">/&gt;</span>

<span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.class"</span> <span class="na">value=</span><span class="s">"mymapper"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<p>Possible uses of the ActionMapper include defining your own, cleaner namespaces, such as URLs like <strong>/person/1</strong>, which 
would be similar to a request to <strong>/getPerson.action?personID=1</strong> using the DefaultActionMapper.</p>

<h2 id="compositeactionmapper">CompositeActionMapper</h2>

<p>A composite action mapper that is capable of delegating to a series of  if the former failed to obtained a valid 
<code class="highlighter-rouge">ActionMapping</code> or uri.</p>

<p>It is configured through <a href="struts-xml.html">struts.xml</a>. For example, with the following entries in <code class="highlighter-rouge">struts.xml</code></p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.class"</span> <span class="na">value=</span><span class="s">"composite"</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.composite"</span> <span class="na">value=</span><span class="s">"struts,restful,restful2"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<p>When <code class="highlighter-rouge">CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</code> or <code class="highlighter-rouge">CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code>
is invoked, <code class="highlighter-rouge">CompositeActionMapper</code> would go through these s in sequence starting from identified by <code class="highlighter-rouge">struts.mapper.composite.1</code>, 
followed by <code class="highlighter-rouge">struts.mapper.composite.2</code> and finally <code class="highlighter-rouge">struts.mapper.composite.3</code> (in this case) until either one of the return 
a valid result (not null) or it runs out of  in which case it will just return null for both 
<code class="highlighter-rouge">CompositeActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</code> and <code class="highlighter-rouge">CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code>
methods.</p>

<p>For example with the following in struts.xml:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.class"</span> <span class="na">value=</span><span class="s">"composite"</span> <span class="nt">/&gt;</span>
<span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.composite"</span> <span class="na">value=</span><span class="s">"struts,restful"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<p><code class="highlighter-rouge">CompositeActionMapper</code> will be configured with 2 ActionMapper, namely “struts” which is <code class="highlighter-rouge">org.apache.struts2.dispatcher.mapper.DefaultActionMapper</code>
and “restful” which is <code class="highlighter-rouge">org.apache.struts2.dispatcher.mapper.RestfulActionMapper</code>.</p>

<p><code class="highlighter-rouge">CompositeActionMapper</code> would consult each of them in order described above.</p>

<h2 id="prefixbasedactionmapper">PrefixBasedActionMapper</h2>

<p>A prefix based action mapper that is capable of delegating to other <code class="highlighter-rouge">ActionMapper</code>s based on the request’s prefix.
It is configured through <code class="highlighter-rouge">struts.xml</code>. For example, with the following entries in <code class="highlighter-rouge">struts.xml</code>:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.class"</span> <span class="na">value=</span><span class="s">"prefix"</span><span class="nt">/&gt;</span>

<span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.prefixMapping"</span> <span class="na">value=</span><span class="s">"
  /communities:pseudoRestful,
  /communityTags:pseudoRestful,
  /events:pseudoRestful,
  /mediaList:pseudoRestful,
  /users:pseudoRestful,
  /community:struts,
  /communityTag:struts,
  /event:struts,
  /media:struts,
  /user:struts,
  :struts
"</span><span class="nt">/&gt;</span>
</code></pre></div></div>
<p>When <code class="highlighter-rouge">PrefixBasedActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</code> or <code class="highlighter-rouge">PrefixBasedActionMapper#getUriFromActionMapping(ActionMapping)</code>
is invoked, <code class="highlighter-rouge">PrefixBasedActionMapper</code> will check each possible prefix (url prefix terminating just before a <code class="highlighter-rouge">/</code>) to find 
the most specific <code class="highlighter-rouge">ActionMapper</code> that returns a mapping when asked to map the request. If none are found, null is returned 
for both <code class="highlighter-rouge">PrefixBasedActionMapper#getMapping(HttpServletRequest, ConfigurationManager)</code> and
<code class="highlighter-rouge">PrefixBasedActionMapper#getUriFromActionMapping(ActionMapping)</code> methods.</p>

<h3 id="prefixbasedactionproxyfactory">PrefixBasedActionProxyFactory</h3>

<p>Prefix based factory should be used with <code class="highlighter-rouge">org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper</code> to use 
appropriate <code class="highlighter-rouge">com.opensymphony.xwork2.ActionProxyFactory</code> connected with given <code class="highlighter-rouge">org.apache.struts2.dispatcher.mapper.ActionMapper</code>.</p>

<p>Add below entry to <code class="highlighter-rouge">struts.xml</code> to enable the factory:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.actionProxyFactory"</span> <span class="na">value=</span><span class="s">"prefix"</span><span class="nt">/&gt;</span>
</code></pre></div></div>

<p>The factory will use the same set of patterns as defined with:</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.prefixMapping"</span> <span class="na">value=</span><span class="s">"..."</span><span class="nt">/&gt;</span>
</code></pre></div></div>

<h2 id="actionmapper-and-actionmapping-objects">ActionMapper and ActionMapping objects</h2>

<p>The ActionMapper fetches the ActionMapping object corresponding to a given request. Essentially, the ActionMapping is 
a data transfer object that collects together details such as the Action class and method to execute. The mapping is 
utilized by the Dispatcher and various user interface components. It is customizable through <code class="highlighter-rouge">struts.mapper.class</code> 
entry in <code class="highlighter-rouge">struts.xml</code>. Note that the value of this constant is the name of the bean of the new mapper.</p>

<h2 id="customize">Customize</h2>

<p>Custom ActionMapper must implement ActionMapper interface and have a default constructor.</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span class="na">name=</span><span class="s">"mymapper"</span> <span class="na">class=</span><span class="s">"com.mycompany.myapp.MyActionMapper"</span> <span class="nt">/&gt;</span>

<span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.mapper.class"</span> <span class="na">value=</span><span class="s">"mymapper"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyCustomActionMapper</span> <span class="kd">implements</span> <span class="n">ActionMapper</span> <span class="o">{</span>
  <span class="kd">public</span> <span class="n">ActionMapping</span> <span class="nf">getMapping</span><span class="o">(</span><span class="n">HttpServletRequest</span> <span class="n">request</span><span class="o">,</span>
                                  <span class="n">ConfigurationManager</span> <span class="n">configManager</span><span class="o">)</span> <span class="o">{</span>
    <span class="o">....</span>
  <span class="o">}</span>

  <span class="kd">public</span> <span class="n">String</span> <span class="nf">getUriFromActionMapping</span><span class="o">(</span><span class="n">ActionMapping</span> <span class="n">mapping</span><span class="o">)</span> <span class="o">{</span>
    <span class="o">....</span>
  <span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>

<blockquote>
  <p>See also: <a href="restful-action-mapper.html">RestfulActionMapper</a></p>
</blockquote>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
