Added: 
websites/production/struts/content/core-developers/multiselect-interceptor.html
==============================================================================
--- 
websites/production/struts/content/core-developers/multiselect-interceptor.html 
(added)
+++ 
websites/production/struts/content/core-developers/multiselect-interceptor.html 
Thu Jun  1 11:35:58 2017
@@ -0,0 +1,210 @@
+<!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>Multiselect Interceptor</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="multiselect-interceptor">Multiselect Interceptor</h1>
+
+<div class="highlighter-rouge"><pre 
class="highlight"><code>org.apache.struts2.interceptor.MultiselectInterceptor
+</code></pre>
+</div>
+<p>is in the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>defaultStack
+</code></pre>
+</div>
+<p>. It checks each form parameter submitted to the action and if it finds one 
with a prefix of</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>__multiselect_
+</code></pre>
+</div>
+<p>it inserts a value for a parameter whose name is derived from the suffix 
to</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>__multiselect_
+</code></pre>
+</div>
+<p>if it does not exist. The default value inserted is an empty String 
array.</p>
+
+<p>This means that a a field that can have multiple selected values(select, 
checkboxlist, etc) can be accompanied by a hidden input with the same name but 
a prefix of</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>__multiselect_
+</code></pre>
+</div>
+<p>so that if the no value is selected on the form the action will still 
receive a value(empty collection) rather than the default HTML action of not 
providing a value for unselected elements,</p>
+
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: 
websites/production/struts/content/core-developers/namespace-annotation.html
==============================================================================
--- 
websites/production/struts/content/core-developers/namespace-annotation.html 
(added)
+++ 
websites/production/struts/content/core-developers/namespace-annotation.html 
Thu Jun  1 11:35:58 2017
@@ -0,0 +1,221 @@
+<!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>Namespace Annotation</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="namespace-annotation">Namespace Annotation</h1>
+
+<p>####Namespace Annotation####</p>
+
+<p>The</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>@Namespace
+</code></pre>
+</div>
+<p>annotation allows the definition of an Action’s namespace in the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>Action
+</code></pre>
+</div>
+<p>class rather than based on <a href="zero-configuration.html">Zero 
Configuration</a>’s conventions.</p>
+
+<p>#####Usage#####</p>
+
+<p>This annotation is placed at the class level.</p>
+
+<p>#####Parameters#####</p>
+
+<table>
+  <thead>
+    <tr>
+      <th>Name</th>
+      <th>Type</th>
+      <th>Required</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>value</td>
+      <td>String</td>
+      <td>true</td>
+      <td>The namespace to use for the annotated action class.</td>
+    </tr>
+  </tbody>
+</table>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: 
websites/production/struts/content/core-developers/namespace-configuration.html
==============================================================================
--- 
websites/production/struts/content/core-developers/namespace-configuration.html 
(added)
+++ 
websites/production/struts/content/core-developers/namespace-configuration.html 
Thu Jun  1 11:35:58 2017
@@ -0,0 +1,347 @@
+<!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>Namespace Configuration</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="namespace-configuration">Namespace Configuration</h1>
+
+<p>The namespace attribute subdivides action configurations into logical 
modules, each with its own identifying prefix. Namespaces avoid conflicts 
between action names. Each namespace can have its own “menu” or “help” 
action, each with its own implementation. While the prefix appears in the 
browser URI, the tags are “namespace aware”, so the namespace prefix does 
not need to be embedded in forms and links.</p>
+
+<table>
+  <tbody>
+    <tr>
+      <td>Struts 2 Namespaces are the equivalent of Struts Action 1 modules, 
but more convenient and flexible.</td>
+    </tr>
+  </tbody>
+</table>
+
+<table>
+  <tbody>
+    <tr>
+    </tr>
+  </tbody>
+</table>
+
+<p>#####Default Namespace#####</p>
+
+<p>The default namespace is</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>""
+</code></pre>
+</div>
+<p>- an empty string. The default namespace is used as a “catch-all” 
namespace. If an action configuration is not found in a specified namespace, 
the default namespace is also be searched. The local/global strategy allows an 
application to have global action configurations outside of the action element 
“extends” hierarchy.</p>
+
+<p>The namespace prefix can be registered with Java declarative security, to 
ensure only authorized users can access the actions in a given namespace.</p>
+
+<p>#####Root Namespace#####</p>
+
+<p>A root namespace (“/”) is also supported. The root is the namespace 
when a request directly under the context path is received. As with other 
namespaces, it will fall back to the default (“”) namespace if a local 
action is not found.</p>
+
+<p>#####Namespace Example#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+&lt;package name="default"&gt;
+    &lt;action name="foo" class="mypackage.simpleAction"&gt;
+        &lt;result name="success" 
type="dispatcher"&gt;greeting.jsp&lt;/result&gt;
+    &lt;/action&gt;
+
+    &lt;action name="bar" class="mypackage.simpleAction"&gt;
+        &lt;result name="success" type="dispatcher"&gt;bar1.jsp&lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+
+&lt;package name="mypackage1" namespace="/"&gt;
+    &lt;action name="moo" class="mypackage.simpleAction"&gt;
+        &lt;result name="success" type="dispatcher"&gt;moo.jsp&lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+
+&lt;package name="mypackage2" namespace="/barspace"&gt;
+    &lt;action name="bar" class="mypackage.simpleAction"&gt;
+        &lt;result name="success" type="dispatcher"&gt;bar2.jsp&lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+
+</code></pre>
+</div>
+
+<p>#####How the Code Works#####</p>
+
+<p>If a request for</p>
+
+<div class="highlighter-rouge"><pre 
class="highlight"><code>/barspace/bar.action
+</code></pre>
+</div>
+<p>is made, the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>/barspace
+</code></pre>
+</div>
+<p>namespace is searched for the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar
+</code></pre>
+</div>
+<p>action. If found, the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar
+</code></pre>
+</div>
+<p>action is executed, else it will fall back to the default namespace. In the 
Namespace Example, the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar
+</code></pre>
+</div>
+<p>action does exist in the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>/barspace
+</code></pre>
+</div>
+<p>namespace, so the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar
+</code></pre>
+</div>
+<p>action will be executed, and if “success” is returned, the request will 
be forwarded to</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar2.jsp
+</code></pre>
+</div>
+<p>.</p>
+
+<table>
+  <tbody>
+    <tr>
+      <td>If a request is made to /barspace/foo.action, the namespace 
/barspace will be checked for action foo. If a local action is not found, the 
default namespace is checked. In the Namespace Example, there is no action foo 
in the namespace /barspace, therefore the default will be checked and 
/foo.action will be executed.</td>
+    </tr>
+  </tbody>
+</table>
+
+<table>
+  <tbody>
+    <tr>
+    </tr>
+  </tbody>
+</table>
+
+<p>In the Namespace Example, if a request for</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>moo.action
+</code></pre>
+</div>
+<p>is made, the root namespace (‘/’) is searched for a</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>moo
+</code></pre>
+</div>
+<p>action; if a root action is not found, the default namespace is checked. In 
this case, the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>moo
+</code></pre>
+</div>
+<p>action does exist and will be executed. Upon success, the request would be 
forwarded to</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>bar2.jsp
+</code></pre>
+</div>
+<p>.</p>
+
+<table>
+  <tbody>
+    <tr>
+      <td>If a request is made for /foo.action, the root / namespace will be 
checked. If foo is found, the root action will be selected. Otherwise, the 
framework will check the default namespace. In the Namespace Example, the foo 
action does not exist in the root namespace, so the default namespace is  
checked, and the default foo action is executed.</td>
+    </tr>
+  </tbody>
+</table>
+
+<table>
+  <tbody>
+    <tr>
+    </tr>
+  </tbody>
+</table>
+
+<p>Namespace are not hierarchical like a file system path. There is one 
namespace level. For example if the URL /barspace/myspace/bar.action is 
requested, the framework will first look for namespace /barspace/myspace. If 
the action does not exist at /barspace/myspace, the search will immediately 
fall back to the default namespace “”. The framework will not parse the 
namespace into a series of “folders”. In the Namespace Example, the bar 
action in the default namespace would be selected.</p>
+
+<table>
+  <tbody>
+    <tr>
+    </tr>
+  </tbody>
+</table>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: websites/production/struts/content/core-developers/no-op-interceptor.html
==============================================================================
--- websites/production/struts/content/core-developers/no-op-interceptor.html 
(added)
+++ websites/production/struts/content/core-developers/no-op-interceptor.html 
Thu Jun  1 11:35:58 2017
@@ -0,0 +1,192 @@
+<!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>NoOp Interceptor</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="noop-interceptor">NoOp Interceptor</h1>
+
+<div class="highlighter-rouge"><pre 
class="highlight"><code>org.apache.struts2.interceptor.NoOpInterceptor
+</code></pre>
+</div>
+<p>is in the </p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>emptyStack
+</code></pre>
+</div>
+<p>and it performs no computation, it is there to allow create an empty stack 
that can be used with actions that do not required receiving request parameters 
or are fully stateless, i.e. when producing a JSON response on public 
endpoints.</p>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: websites/production/struts/content/core-developers/nutshell.html
==============================================================================
--- websites/production/struts/content/core-developers/nutshell.html (added)
+++ websites/production/struts/content/core-developers/nutshell.html Thu Jun  1 
11:35:58 2017
@@ -0,0 +1,334 @@
+<!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>Nutshell</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="nutshell">Nutshell</h1>
+
+<p>The framework documentation is written for active web developers and 
assumes a working knowledge about how Java web applications are built. For more 
about the underlying nuts and bolts, see the <a 
href="http://struts\.apache\.org/primer\.html";>Key Technologies 
Primer</a>^[http://struts.apache.org/primer.html].</p>
+
+<blockquote>
+
+</blockquote>
+
+<p>####Apache Struts 2 Architecture in a Nutshell####</p>
+
+<p><img src="attachments/struts2-arch.png" alt="struts2-arch.png" /></p>
+
+<ol>
+  <li>The web browser requests a resource (/mypage.action, 
/reports/myreport.pdf, et cetera)\</li>
+  <li>The Filter Dispatcher looks at the request and determines the 
appropriate Action\</li>
+  <li>The Interceptors automatically apply common functionality to the 
request, like workflow, validation, and file upload handling\</li>
+  <li>The Action method executes, usually storing and/or retrieving 
information from a database\</li>
+  <li>The Result renders the output to the browser, be it HTML, images, PDF, 
or something else\</li>
+</ol>
+
+<p>|
+|——————————————————————————————————————————|———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————â€�
 
�————————————————————————————————————————————-|</p>
+
+<p>####Struts Tags in a nutshell####</p>
+
+<p>The Struts Tags help you create rich web applications with a minimum of 
coding. Often, much of the coding effort in a web application goes into the 
pages. The Struts Tags reduce effort by reducing code.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+&lt;% User user = ... %&gt;
+&lt;form action="Profile_update.action" method="post"&gt;
+    &lt;table&gt;
+        &lt;tr&gt;
+            &lt;td align="right"&gt;&lt;label&gt;First 
name:&lt;/label&gt;&lt;/td&gt;
+            &lt;td&gt;&lt;input type="text" name="user.firstname" 
value="&lt;%=user.getFirstname() %&gt; /&gt;&lt;/td&gt;
+        &lt;/tr&gt;
+        &lt;tr&gt;
+            &lt;td&gt;&lt;input type="radio" name="user.gender" value="0" 
id="user.gender0" 
+                &lt;% if (user.getGender()==0) { %&gt; checked="checked" %&gt; 
} %&gt; /&gt;
+            &lt;label for="user.gender0"&gt;Female&lt;/label&gt;
+        &lt;/tr&gt;
+    &lt;/table&gt;
+&lt;/form&gt;
+...
+
+</code></pre>
+</div>
+
+<p>Looking over the markup, it’s easy to see why Java web development 
without the aid from a modern framework is hard!  So far, we’ve only coded 
two controls, and there are six more to go! Let’s rewrite and finish the form 
using Struts Tags.</p>
+
+<p>|\
+\
+<img 
src="/Users/lukaszlenart/Projects/Apache/struts\-site/target/md/attachments/att1846\_nutshell\.GIF"
 alt="nutshell.GIF" />
+|\
+&lt;s:actionerror/&gt;\
+&lt;s:form action=”Profile_update” validate=”true”&gt;\
+    &lt;s:textfield label=”Username” name=”username”/&gt;\
+    &lt;s:password label=”Password” name=”password”/&gt;\
+    &lt;s:password label=”(Repeat) Password” name=”password2”/&gt;\
+    &lt;s:textfield label=”Full Name” name=”fullName”/&gt;\
+    &lt;s:textfield label=”From Address” name=”fromAddress”/&gt;\
+    &lt;s:textfield label=”Reply To Address” 
name=”replyToAddress”/&gt;\
+    &lt;s:submit value=”Save” name=”Save”/&gt;\
+    &lt;s:submit action=”Register_cancel” value=”Cancel” 
name=”Cancel”  onclick=”form.onsubmit=null”/&gt;\
+&lt;/s:form&gt;\
+ The Struts Tags also support validation and localization as first-class 
features. So not only is there less code, but there is <em>more</em>  utility. \
+In about the same amount of code as two conventional controls, the Struts Tags 
can create an entire data-input form with eight controls. Not only is there 
less code, but the code is easier to read and maintain. |
+|——————————————————————————————————————–|——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————â€�
 
�——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
 
———————————————————————————-|</p>
+
+<p>####Struts Configuration in a Nutshell####</p>
+
+<p>A web application uses a deployment descriptor to initialize resources like 
filters and listeners. The web deployment descriptor is formatted as a XML 
document and named</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>web.xml
+</code></pre>
+</div>
+<p>. Struts can either initialize its resources by scanning your classes using 
Java packages declared in this</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>web.xml
+</code></pre>
+</div>
+<p>file, or you can have full control over the configuration via a 
configuration file, named</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>struts.xml
+</code></pre>
+</div>
+<p>. These resources include action mappings, to direct input to server-side 
Action classes, and result types, to select output pages.</p>
+
+<p>Here’s a typical configuration (</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>struts.xml
+</code></pre>
+</div>
+<p>) for a login workflow:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+&lt;struts&gt;
+    &lt;package name="default" extends="struts-default"&gt;
+        &lt;action name="Logon" class="mailreader2.Logon"&gt;
+            &lt;result name="input"&gt;/pages/Logon.jsp&lt;/result&gt;
+            &lt;result name="cancel" 
type="redirectAction"&gt;Welcome&lt;/result&gt;
+            &lt;result type="redirectAction"&gt;MainMenu&lt;/result&gt;
+            &lt;result name="expired" 
type="chain"&gt;ChangePassword&lt;/result&gt;
+        &lt;/action&gt;
+
+        &lt;action name="Logoff" class="mailreader2.Logoff"&gt;
+            &lt;result type="redirectAction"&gt;Welcome&lt;/result&gt;
+        &lt;/action&gt;
+    &lt;/package&gt;
+&lt;/struts&gt;
+
+</code></pre>
+</div>
+
+<p>(light-on) The framework provides general-purpose defaults, so we can start 
using Struts right away, “out of the box”. Any factory defaults can be 
overridden in an application’s configuration, as needed.</p>
+
+<p>####Struts MVC in a Nutshell####</p>
+
+<p>Struts is a <a href="http://struts\.apache\.org/primer\.html\#mvc";>Model 
View Controller</a>^[http://struts.apache.org/primer.html#mvc] framework. 
Struts provides Controller and View components, and integrates with other 
technologies to provide the Model. The framework’s Controller acts as a 
bridge between the application’s Model and the web View.</p>
+
+<p>To make it easier to present dynamic data, the framework includes a library 
of markup tags. The tags interact with the framework’s validation and 
internationalization features, to ensure that input is correct and output is 
localized. The tag library can be used with JSP, FreeMarker, or Velocity. Of 
course, other tag libraries, JSTL, and AJAX can also be used, with or without 
the Struts tags. JavaServer Faces components are also supported.</p>
+
+<p>When a request is received, the Controller invokes an Action class. The 
Action class examines or updates the application’s state by consulting the 
Model (or, preferably, an interface representing the Model). To transfer data 
between the Model and the View, properties can be placed on the Action class, 
or on a plain old JavaBean.</p>
+
+<p>Most often, the Model is represented as a graph of JavaBean objects. The 
Model should do the “heavy lifting”, and the Action will act as a 
“traffic cop” or adapter. The framework provides sophisticated, automatic 
type conversion to simplify transfering data between rich domain objects and 
text-only HTTP requests.</p>
+
+<p>Struts is extensible. <em>Very</em>  extensible. Every class deployed by 
the framework is based on an interface. We provide all the base classes an 
application may ever need, but if we missed something, it’s easy to add your 
own. We provide the general-purpose framework, but you can still write 
<em>your</em>  application <em>your</em>  way.</p>
+
+<p>####Is Struts the best choice for every project?####</p>
+
+<p>Apache Struts 2 helps you create an extensible development environment for 
enterprise-grade applications, based on industry standards and proven design 
patterns. If you need to write a very simple application, with a handful of 
pages, then you might consider a “Model 1” solution that uses only server 
pages.</p>
+
+<p>But, if you are writing a more complicated application, with dozens of 
pages, that need to be maintained over time, then Struts can help. For more 
about whether Model 1 or MVC/Model 2 is right for you, see <a 
href="http://www\.javaworld\.com/javaworld/jw\-12\-1999/jw\-12\-ssj\-jspmvc\.html";>Understanding
 JavaServer Pages Model 2 
architecture</a>^[http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html].</p>
+
+<p>####Platform Requirements####</p>
+
+<p>Struts 2 requires</p>
+
+<ul>
+  <li>
+    <p>Servlet API 2.4</p>
+  </li>
+  <li>
+    <p>JSP API 2.0</p>
+  </li>
+  <li>
+    <p>Java 5</p>
+  </li>
+</ul>
+
+<p>For a full list of requirements, including dependencies used by optional 
plugins, see <a 
href="http://struts\.apache\.org/2\.x/struts2\-core/dependencies\.html";>Project 
Dependencies</a>^[http://struts.apache.org/2.x/struts2-core/dependencies.html]</p>
+
+<p>(ok)  An alternate set of JARs for Java 4 are also available. See the 
“J4” distribution.</p>
+
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: websites/production/struts/content/core-developers/object-factory.html
==============================================================================
--- websites/production/struts/content/core-developers/object-factory.html 
(added)
+++ websites/production/struts/content/core-developers/object-factory.html Thu 
Jun  1 11:35:58 2017
@@ -0,0 +1,296 @@
+<!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>ObjectFactory</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="objectfactory">ObjectFactory</h1>
+
+<p>All objects created by the framework are instantiated by the ObjectFactory. 
The ObjectFactory provides the means of integrating the framework with IoC 
containers like Spring, Pico, Plexus, and so forth.</p>
+
+<p>####Customize####</p>
+
+<p>#####Extend ObjectFactory#####</p>
+
+<p>Customized ObjectFactory must extend ObjectFactory or any of its 
descendants and have a default, no-argument constructor.</p>
+
+<table>
+  <tbody>
+    <tr>
+    </tr>
+  </tbody>
+</table>
+
+<p>To register a customized ObjectFactory, add or edit an entry in</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>struts.properties
+</code></pre>
+</div>
+
+<div class="highlighter-rouge"><pre class="highlight"><code> 
struts.objectFactory=foo.bar.MyCustomObjectFactory
+
+</code></pre>
+</div>
+
+<p>where foo.bar.MyCustomObjectFactory is the custom object factory.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>public class 
MyObjectFactory extends ObjectFactory {
+    .....
+}
+
+</code></pre>
+</div>
+
+<p>#####Define dedicated factory#####</p>
+
+<p>If you want to just extend one part of ObjectFactory, ie. to change how <a 
href="result-types.html">Result Types</a> are build, you can implement</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ResultFactory
+</code></pre>
+</div>
+<p>interface and register it with dedicated name, see <em>Extension 
Points</em>  for more details. Original ObjectFactory will use these dedicated 
factories to do the work. It’s already done this way - the original 
functionality of ObjectFactory was extracted to separated classes which 
implements the interfaces below. Check the source of ObjectFactory to see more 
details. All these factories are available as from version 2.3.16.</p>
+
+<p>List of Factory interfaces:</p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ResultFactory
+</code></pre>
+</div>
+<p>- dedicated interfaces used by  to create <a 
href="result-types.html">Result Types</a></p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>StrutsResultFactory
+</code></pre>
+</div>
+<p>it’s internal implementation which checks if Result implements</p>
+
+<div class="highlighter-rouge"><pre 
class="highlight"><code>ParamNameAwareResult
+</code></pre>
+</div>
+<p>interface to restrict names of parameters set on the instance of Result, 
see <a href="result-types.html">Result Types</a> for more info.</p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ActionFactory
+</code></pre>
+</div>
+<p>- dedicated interface used by  to actions</p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>InterceptorFactory
+</code></pre>
+</div>
+<p>- dedicated interface used by  to create interceptors</p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ValidatorFactory
+</code></pre>
+</div>
+<p>- dedicated interface used by  to create validators</p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ConverterFactory
+</code></pre>
+</div>
+<p>- dedicated interface used by  to create instances of 
<em>TypeConverter</em></p>
+
+<ul>
+  <li></li>
+</ul>
+
+<div class="highlighter-rouge"><pre 
class="highlight"><code>UnknownHandlerFactory
+</code></pre>
+</div>
+<p>- dedicated interfaces used by  to create instances of <a 
href="unknown-handlers.html">Unknown Handlers</a> (as from version 2.3.18)</p>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

Added: 
websites/production/struts/content/core-developers/package-configuration.html
==============================================================================
--- 
websites/production/struts/content/core-developers/package-configuration.html 
(added)
+++ 
websites/production/struts/content/core-developers/package-configuration.html 
Thu Jun  1 11:35:58 2017
@@ -0,0 +1,297 @@
+<!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>Package Configuration</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+                <li><a href="/announce.html">Announcements</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://apache.org/foundation/thanks.html";>Thanks!</a></li>
+                <li><a 
href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+                <li><a href="/docs/faqs.html">FAQs</a></li>
+                <li><a href="/docs/guides.html">Guides</a></li>
+                <li class="divider"></li>
+                <li><a href="/maven/struts2-core/apidocs/index.html">Struts 
Core API</a></li>
+                <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+                <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+                <li><a 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin registry</a></li>
+                <li class="divider"></li>
+                <li><a href="/security/">Security Guide (WIP)</a></li>
+                <li><a href="/core-developers/">Core Developers Guide 
(WIP)</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 class="divider"></li>
+                <li><a href="/submitting-patches.html">Submitting 
patches</a></li>
+                <li><a href="/builds.html">Source Code</a></li>
+                <li><a href="/coding-standards.html">Coding standards</a></li>
+                <li class="divider"></li>
+                <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git";>Source 
Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
+    <h1 id="package-configuration">Package Configuration</h1>
+
+<p>Packages are a way to group actions, results, result types, interceptors, 
and interceptor-stacks into a logical configuration unit. Conceptually, 
packages are similiar to objects in that they can be extended and have 
individual parts that can be overridden by “sub” packages.</p>
+
+<p>#####Packages#####</p>
+
+<p>The package element has one required attribute,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>name
+</code></pre>
+</div>
+<p>, which acts as the key for later reference to the package. The</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>extends
+</code></pre>
+</div>
+<p>attribute is optional and allows one package to inherit the configuration 
of one or more previous packages - including all interceptor, 
interceptor-stack, and action configurations.</p>
+
+<p>(!)  Note that the configuration file is processed sequentially down the 
document, so the package referenced by an “extends” should be defined 
<em>above</em>  the package which extends it.</p>
+
+<p>The optional</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>abstract
+</code></pre>
+</div>
+<p>attribute creates a base package that can omit the action configuration.</p>
+
+<table>
+  <thead>
+    <tr>
+      <th>Attribute</th>
+      <th>Required</th>
+      <th>Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>name</td>
+      <td><strong>yes</strong></td>
+      <td>key to for other packages to reference</td>
+    </tr>
+    <tr>
+      <td>extends</td>
+      <td>no</td>
+      <td>inherits package behavior of the package it extends</td>
+    </tr>
+    <tr>
+      <td>namespace</td>
+      <td>no</td>
+      <td>see <a href="#PAGE_14276">Namespace Configuration</a></td>
+    </tr>
+    <tr>
+      <td>abstract</td>
+      <td>no</td>
+      <td>declares package to be abstract (no action configurations required 
in package)</td>
+    </tr>
+  </tbody>
+</table>
+
+<p><strong>Simple usage</strong></p>
+
+<p><strong>Package Example (struts.xml)</strong></p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+&lt;struts&gt;
+  &lt;package name="employee" extends="struts-default" 
namespace="/employee"&gt;
+    &lt;default-interceptor-ref name="crudStack"/&gt;
+
+    &lt;action name="list" method="list"
+      class="org.apache.struts2.showcase.action.EmployeeAction" &gt;
+        &lt;result&gt;/empmanager/listEmployees.jsp&lt;/result&gt;
+        &lt;interceptor-ref name="basicStack"/&gt;
+    &lt;/action&gt;
+    &lt;action name="edit-*" 
class="org.apache.struts2.showcase.action.EmployeeAction"&gt;
+      &lt;param name="empId"&gt;{1}&lt;/param&gt;
+      &lt;result&gt;/empmanager/editEmployee.jsp&lt;/result&gt;
+        &lt;interceptor-ref name="crudStack"&gt;
+          &lt;param name="validation.excludeMethods"&gt;execute&lt;/param&gt;
+        &lt;/interceptor-ref&gt;
+      &lt;/action&gt;
+      &lt;action name="save" method="save"
+          class="org.apache.struts2.showcase.action.EmployeeAction" &gt;
+        &lt;result name="input"&gt;/empmanager/editEmployee.jsp&lt;/result&gt;
+        &lt;result 
type="redirect"&gt;edit-${currentEmployee.empId}.action&lt;/result&gt;
+      &lt;/action&gt;
+      &lt;action name="delete" method="delete"
+        class="org.apache.struts2.showcase.action.EmployeeAction" &gt;
+        &lt;result name="error"&gt;/empmanager/editEmployee.jsp&lt;/result&gt;
+        &lt;result 
type="redirect"&gt;edit-${currentEmployee.empId}.action&lt;/result&gt;
+      &lt;/action&gt;
+  &lt;/package&gt;
+&lt;/struts&gt;
+
+</code></pre>
+</div>
+
+<p><strong>Inherit from more than one package</strong></p>
+
+<p><strong>Multi package Example (struts.xml)</strong></p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+&lt;struts&gt;
+  &lt;package name="employee" extends="struts-default, json-default" 
namespace="/employee"&gt;
+
+    &lt;action name="list" method="list" 
class="org.apache.struts2.showcase.action.EmployeeAction" &gt;
+        &lt;result&gt;/empmanager/listEmployees.jsp&lt;/result&gt;
+        &lt;result type="json"&gt;
+            &lt;param name="root"&gt;employees&lt;/param&gt;
+        &lt;/result&gt;
+    &lt;/action&gt;
+
+  &lt;/package&gt;
+&lt;/struts&gt;
+
+</code></pre>
+</div>
+
+  </section>
+</article>
+
+
+<footer class="container">
+  <div class="col-md-12">
+    Copyright &copy; 2000-2016 <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>
+
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>


Reply via email to