struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From git-site-r...@apache.org
Subject [struts-site] branch asf-site updated: Updates production by Jenkins
Date Wed, 15 Nov 2017 07:49:20 GMT
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 4f66d95  Updates production by Jenkins
4f66d95 is described below

commit 4f66d957020aaa20ea967e3616fc0d278af9876b
Author: jenkins <builds@apache.org>
AuthorDate: Wed Nov 15 07:49:18 2017 +0000

    Updates production by Jenkins
---
 content/getting-started/annotations.html           | 103 ++++++++----
 content/getting-started/coding-actions.html        |  19 ++-
 content/getting-started/control-tags.html          |  23 ++-
 content/getting-started/debugging-struts.html      |  83 +++++++---
 content/getting-started/exception-handling.html    |  29 ++--
 content/getting-started/exclude-parameters.html    |  83 +++++++---
 content/getting-started/form-tags.html             |  39 +++--
 .../getting-started/form-validation-using-xml.html |  39 +++--
 content/getting-started/form-validation.html       |  91 +++++++----
 .../getting-started/hello-world-using-struts2.html | 146 +++++++++++------
 .../how-to-create-a-struts2-web-application.html   |  58 ++++---
 content/getting-started/http-session.html          |   6 +-
 .../getting-started/introducing-interceptors.html  | 127 +++++++++------
 .../getting-started/jasper-reports-tutorial.html   |  13 +-
 .../getting-started/message-resource-files.html    | 176 ++++++++++++++-------
 content/getting-started/preperable-interface.html  |  65 ++++++--
 content/getting-started/processing-forms.html      |  20 ++-
 content/getting-started/spring.html                | 122 ++++++++------
 content/getting-started/themes.html                | 153 +++++++++++-------
 content/getting-started/unit-testing.html          | 102 ++++++++----
 content/getting-started/using-tags.html            | 110 +++++++++----
 .../getting-started/wildcard-method-selection.html |  26 ++-
 22 files changed, 1124 insertions(+), 509 deletions(-)

diff --git a/content/getting-started/annotations.html b/content/getting-started/annotations.html
index 84faa57..57b6d0b 100644
--- a/content/getting-started/annotations.html
+++ b/content/getting-started/annotations.html
@@ -119,23 +119,41 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/annotations.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="annotations">Annotations</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="annotations">Annotations</h1>
 
-<p>The example code for this tutorial, annotations, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#struts-2-convention-plugin" id="markdown-toc-struts-2-convention-plugin">Struts 2 Convention Plugin</a></li>
+  <li><a href="#struts-2-configuration-plugin" id="markdown-toc-struts-2-configuration-plugin">Struts 2 Configuration Plugin</a></li>
+  <li><a href="#annotations-1" id="markdown-toc-annotations-1">Annotations</a></li>
+  <li><a href="#struts-2-configuration-values" id="markdown-toc-struts-2-configuration-values">Struts 2 Configuration Values</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>annotations</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
 
-<p>In our previous tutorials we’ve been using an XML file (<code class="highlighter-rouge">struts.xml</code>) to configure our applications. The XML file wires up the action names (register), with ActionSupport classes (<code class="highlighter-rouge">RegisterAction.java</code>), and with the result to render back to the browser (<code class="highlighter-rouge">register.jsp</code>). Struts 2 provides an alternative to using XML to configure your application by using standard naming conve [...]
+<h2 id="introduction">Introduction</h2>
 
-<p>This tutorial assumes you understand how to apply annotations to Java classes and methods. If you’re not familiar with annotations, consult the <a href="http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html">Java online tutorial</a>.</p>
+<p>In our previous tutorials we’ve been using an XML file (<code class="highlighter-rouge">struts.xml</code>) to configure our applications. The XML file wires 
+up the action names (register), with ActionSupport classes (<code class="highlighter-rouge">RegisterAction.java</code>), and with the result to render back 
+to the browser (<code class="highlighter-rouge">register.jsp</code>). Struts 2 provides an alternative to using XML to configure your application by using 
+standard naming conventions and annotations for your action names, <code class="highlighter-rouge">ActionSupport</code> classes, and results.</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>This tutorial assumes you understand how to apply annotations to Java classes and methods. If you’re not familiar with 
+annotations, consult the <a href="http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html">Java online tutorial</a>.</p>
 
-<p><strong>Struts 2 Convention Plugin</strong></p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p>Struts 2 enables the use of standard naming conventions and annotations when you include the Convention plugin in your application’s class path. If you’re using Maven you’ll need to add a dependency:</p>
+<h2 id="struts-2-convention-plugin">Struts 2 Convention Plugin</h2>
+
+<p>Struts 2 enables the use of standard naming conventions and annotations when you include the Convention plugin in your 
+application’s class path. If you’re using Maven you’ll need to add a dependency:</p>
 
 <p><strong>Convention Plugin Dependency</strong></p>
 
@@ -146,27 +164,50 @@
 <span class="nt">&lt;/dependency&gt;</span>
 </code></pre>
 </div>
-<p>If you’re using Ant then copy the struts2-convention-plugin jar file from the Struts 2 download to your WEB-INF/lib folder.</p>
 
-<p>The convention plugin provide several different ways you can configure your Struts 2 application without using XML. Consult the <a href="//struts.apache.org/docs/convention-plugin.html">Convention Plugin</a> documentation for complete details. This tutorial only examines one simple way of following the conventions provided by the Convention plugin.</p>
+<p>If you’re using Ant then copy the struts2-convention-plugin jar file from the Struts 2 download to your <code class="highlighter-rouge">WEB-INF/lib</code> folder.</p>
+
+<p>The convention plugin provide several different ways you can configure your Struts 2 application without using XML. 
+Consult the <a href="../plugins/convention/">Convention Plugin</a> documentation for complete details. This tutorial only examines 
+one simple way of following the conventions provided by the Convention plugin.</p>
 
-<p>When you run the example application you’ll see on the <code class="highlighter-rouge">index.jsp</code> page a link to Get your hello. This URL for the link is hello.action. When you click on this link, the execute method of class <code class="highlighter-rouge">HelloAction.java</code> (which is a Struts 2 <code class="highlighter-rouge">ActionSupport</code> class) is run. The view page rendered back to the browser after the execute method returns success is <code class="highlighter-r [...]
+<p>When you run the example application you’ll see on the <code class="highlighter-rouge">index.jsp</code> page a link to Get your hello. This URL for the link 
+is <code class="highlighter-rouge">hello.action</code>. When you click on this link, the execute method of class <code class="highlighter-rouge">HelloAction.java</code> (which is a Struts 2 <code class="highlighter-rouge">ActionSupport</code> class) 
+is run. The view page rendered back to the browser after the execute method returns success is <code class="highlighter-rouge">hello-success.jsp</code>.</p>
 
-<p>None of the above is wired up using XML but rather happens because the application follows the standard naming conventions expected by the Convention plugin. The first convention is that the ActionSupport class, <code class="highlighter-rouge">HelloAction.java</code>, is in package org.apache.struts.struts2annotations.action. One of the Convention plugin’s defaults is to look for ActionSupport classes that are in package structure that ends in action. The next convention the applicati [...]
+<p>None of the above is wired up using XML but rather happens because the application follows the standard naming conventions 
+expected by the Convention plugin. The first convention is that the ActionSupport class, <code class="highlighter-rouge">HelloAction.java</code>, is in package 
+<code class="highlighter-rouge">org.apache.struts.struts2annotations.action</code>. One of the Convention plugin’s defaults is to look for <code class="highlighter-rouge">ActionSupport</code>
+classes that are in package structure that ends in action. The next convention the application follows is that <code class="highlighter-rouge">HelloAction.java</code>
+extends the ActionSupport class and defines an execute method. The link is hello.action. When the Struts 2 filter sees 
+a request for hello.action it will map that request to the HelloAction class’s execute method due to the Convention
+plugin being used.</p>
 
-<p>So a link of hello.action causes the execute method of class HelloAction to be run. That method returns “success.” Because the application is using the Convention plugin, Struts 2 will render back to the browser a view page named <code class="highlighter-rouge">hello-success.jsp</code> that is located in WEB-INF/content (by default the Convention plugin expects all view pages to be in this location). If the execute method returns “input” or “error” then the view page rendered would ha [...]
+<p>So a link of hello.action causes the execute method of class HelloAction to be run. That method returns <code class="highlighter-rouge">success</code>. 
+Because the application is using the Convention plugin, Struts 2 will render back to the browser a view page named 
+<code class="highlighter-rouge">hello-success.jsp</code> that is located in WEB-INF/content (by default the Convention plugin expects all view pages to be 
+in this location). If the execute method returns “input” or “error” then the view page rendered would have been 
+<code class="highlighter-rouge">hello-input.jsp</code> or <code class="highlighter-rouge">hello-error.jsp</code>.</p>
 
-<p><strong>Struts 2 Configuration Plugin</strong></p>
+<h2 id="struts-2-configuration-plugin">Struts 2 Configuration Plugin</h2>
 
-<p>In a <a href="debugging-struts.html">previous tutorial</a> we reviewed how to use the Struts 2 Configuration plugin to view the details of how Struts 2 has configured your application. When using the Convention plugin, it’s very handy to also use the Configuration plugin during development. On the example application’s home page is a link to the application’s configuration. Click on that link and then the hello link on the left menu (under Actions in default). You’ll see the configura [...]
+<p>In a <a href="debugging-struts.html">previous tutorial</a> we reviewed how to use the Struts 2 Configuration plugin to view the details 
+of how Struts 2 has configured your application. When using the Convention plugin, it’s very handy to also use 
+the Configuration plugin during development. On the example application’s home page is a link to the application’s configuration. 
+Click on that link and then the hello link on the left menu (under Actions in default). You’ll see the configuration 
+for the hello action including it’s Action class, result, and view page.</p>
 
 <p><img src="attachments/att24346643_Screen shot 2010-10-24 at 10.51.45 AM.png" alt="Screen shot 2010-10-24 at 10.51.45 AM.png" /></p>
 
-<p><strong>Annotations</strong></p>
+<h2 id="annotations-1">Annotations</h2>
 
-<p>If you want to go beyond the simple naming conventions provided by the Convention plugin, you can use the Struts 2 annotations also provided by the plugin. For example, a common work-flow for a Struts 2 application is to first execute the ActionSupport class’s input method to setup form field default values and then to run the execute method of the same ActionSupport class when the form is submitted (to validate and save the user’s input).</p>
+<p>If you want to go beyond the simple naming conventions provided by the Convention plugin, you can use the Struts 2 
+annotations also provided by the plugin. For example, a common work-flow for a Struts 2 application is to first execute 
+the ActionSupport class’s input method to setup form field default values and then to run the execute method of the same 
+ActionSupport class when the form is submitted (to validate and save the user’s input).</p>
 
-<p>The link to Register for the drawing on the example application’s home page follows this work flow. The link value is register-input.action. If you examine the RegisterAction.java class you’ll find the input method with an Action annotation.</p>
+<p>The link to Register for the drawing on the example application’s home page follows this work flow. The link value 
+is <code class="highlighter-rouge">register-input.action</code>. If you examine the RegisterAction.java class you’ll find the input method with an Action annotation.</p>
 
 <p><strong>Action Annotation</strong></p>
 
@@ -179,13 +220,18 @@
 </code></pre>
 </div>
 
-<p>The Action annotation tells Struts 2 to execute the annotated method when the action link value equals the Action annotation’s value (“register-input”). So a link of register-input.action will call the input method of class <code class="highlighter-rouge">RegisterAction</code>. On the example application’s home page is a link to Register for the drawing with a URL of register-input.action.</p>
+<p>The Action annotation tells Struts 2 to execute the annotated method when the action link value equals the Action 
+annotation’s value (<code class="highlighter-rouge">register-input</code>). So a link of <code class="highlighter-rouge">register-input.action</code> will call the input method of class <code class="highlighter-rouge">RegisterAction</code>. 
+On the example application’s home page is a link to Register for the drawing with a URL of <code class="highlighter-rouge">register-input.action</code>.</p>
 
-<p>The input method above returns “input”. By the standards of the Convention plugin, the view page rendered will be register-input.jsp (from WEB-INF/content). On that view page is a Struts 2 form tag with an action attribute value of register. When submitting the form, the execute method of class RegisterAction will be run. Since the execute method returns success, the view page rendered is <code class="highlighter-rouge">register-success.jsp</code>.</p>
+<p>The input method above returns “input”. By the standards of the Convention plugin, the view page rendered will be 
+<code class="highlighter-rouge">register-input.jsp</code> (from <code class="highlighter-rouge">WEB-INF/content</code>). On that view page is a Struts 2 form tag with an action attribute value 
+of register. When submitting the form, the execute method of class RegisterAction will be run. Since the execute method 
+returns success, the view page rendered is <code class="highlighter-rouge">register-success.jsp</code>.</p>
 
-<p><strong>Struts 2 Configuration Values</strong></p>
+<h2 id="struts-2-configuration-values">Struts 2 Configuration Values</h2>
 
-<p>In previous examples, we included in struts.xml values for some of the Struts 2 configuration parameters.</p>
+<p>In previous examples, we included in <code class="highlighter-rouge">struts.xml</code> values for some of the Struts 2 configuration parameters.</p>
 
 <p><strong>struts.xml parameter configuration</strong></p>
 
@@ -193,13 +239,13 @@
 </code></pre>
 </div>
 
-<p>When we don’t use a struts.xml file, we can set the value of these Struts 2 parameters by using filter parameters in web.xml:</p>
+<p>When we don’t use a struts.xml file, we can set the value of these Struts 2 parameters by using filter parameters in <code class="highlighter-rouge">web.xml</code>:</p>
 
 <p><strong>Struts 2 Parameter Configuration web.xml</strong></p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;filter&gt;</span>
     <span class="nt">&lt;filter-name&gt;</span>struts2<span class="nt">&lt;/filter-name&gt;</span>
-    <span class="nt">&lt;filter-class&gt;</span>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter<span class="nt">&lt;/filter-class&gt;</span>
+    <span class="nt">&lt;filter-class&gt;</span>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter<span class="nt">&lt;/filter-class&gt;</span>
     <span class="nt">&lt;init-param&gt;</span>
         <span class="nt">&lt;param-name&gt;</span>struts.devMode<span class="nt">&lt;/param-name&gt;</span>
         <span class="nt">&lt;param-value&gt;</span>true<span class="nt">&lt;/param-value&gt;</span>
@@ -208,9 +254,12 @@
 </code></pre>
 </div>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>We’ve just scratched the surface of what the Struts 2 convention plugin provides to reduce or eliminate the need to use an XML file to configure your Struts 2 application. The Struts 2 Convention plugin provides ways to map multiple actions to the same method, map results to different view pages, map errors to view pages, and much more. Be sure to read through the <a href="//struts.apache.org/docs/convention-plugin.html">Convention Plugin</a> documentation for alternative ways to conf [...]
+<p>We’ve just scratched the surface of what the Struts 2 convention plugin provides to reduce or eliminate the need to use 
+an XML file to configure your Struts 2 application. The Struts 2 Convention plugin provides ways to map multiple actions 
+to the same method, map results to different view pages, map errors to view pages, and much more. Be sure to read through 
+the <a href="../plugins/convention/">Convention Plugin</a> documentation for alternative ways to configure your Struts 2 application.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/coding-actions.html b/content/getting-started/coding-actions.html
index 176be82..2dd4949 100644
--- a/content/getting-started/coding-actions.html
+++ b/content/getting-started/coding-actions.html
@@ -119,11 +119,22 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/coding-actions.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="coding-actions">Coding actions</h1>
-
-<p>This tutorial assumes you’ve completed the <a href="using-tags.html">Using Struts 2 Tags</a> tutorial and have a working using-tags project. The example code for this tutorial, coding-actions, is available for checkout from the Struts 2 GitHub repository: <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="coding-actions">Coding actions</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#struts-2-action-classes" id="markdown-toc-struts-2-action-classes">Struts 2 Action Classes</a></li>
+  <li><a href="#processing-form-input-in-the-action-class" id="markdown-toc-processing-form-input-in-the-action-class">Processing Form Input In The Action Class</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+<p>This tutorial assumes you’ve completed the <a href="using-tags.html">Using Struts 2 Tags</a> tutorial and have a working <strong>using-tags</strong> 
+project. The example code for this tutorial, <strong>coding-actions</strong>, is available for checkout from the Struts 2 GitHub repository 
+<a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
 <h2 id="introduction">Introduction</h2>
 
diff --git a/content/getting-started/control-tags.html b/content/getting-started/control-tags.html
index 5dfd579..4a21d8f 100644
--- a/content/getting-started/control-tags.html
+++ b/content/getting-started/control-tags.html
@@ -119,19 +119,28 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/control-tags.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="control-tags">Control Tags</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="control-tags">Control Tags</h1>
 
-<p>The example code for this tutorial, control_tags, is available at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#struts-2-if-tag" id="markdown-toc-struts-2-if-tag">Struts 2 if Tag</a></li>
+  <li><a href="#struts-iterator-tag" id="markdown-toc-struts-iterator-tag">Struts iterator Tag</a></li>
+  <li><a href="#additional-iterator-attributes" id="markdown-toc-additional-iterator-attributes">Additional Iterator Attributes</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>control-tags</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
+
+<h2 id="introduction">Introduction</h2>
 
 <p>Struts 2 has several control tags that can be used in the view. This tutorial will discuss and show examples of how to use the Struts 2 if and iterator tags. For more information about these and other control tags visit <a href="http://cwiki.apache.org/confluence/display/WW/Generic+Tag+Reference">tags reference</a>.</p>
 
 <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Struts 2 if Tag</strong></p>
+<h2 id="struts-2-if-tag">Struts 2 if Tag</h2>
 
 <p>In the example application’s thankyou.jsp is this markup.</p>
 
@@ -163,7 +172,7 @@
 
 <p>The purpose of the above markup is to use either “Car model” or “Car models” depending on how many car models the user selected on the edit page. So the value for the test attribute of this iterator tag gets the length of the carModels String array and compares that to 1. If it’s greater then 1, the correct grammar is “Car models” else the correct grammar is “Car model”.</p>
 
-<p><strong>Struts iterator Tag</strong></p>
+<h2 id="struts-iterator-tag">Struts iterator Tag</h2>
 
 <p>The Struts iterator tag is used to generate a loop that iterates over each item in a collection. In the thankyou.jsp is this markup.</p>
 
@@ -193,7 +202,7 @@
 
 <p>The value of the iterator tag is states, which causes the Struts 2 framework to call the getStates method of the Action class (<code class="highlighter-rouge">EditAction.java</code>). The getStates method returns a List of State objects. The State class has two fields stateAbbr and stateName, both having the appropriate get method. The iterator will loop over each State object stored in the collection. Each time through the loop, the Struts 2 framework will have a reference to the cur [...]
 
-<p><strong>Additional Iterator Attributes</strong></p>
+<h2 id="additional-iterator-attributes">Additional Iterator Attributes</h2>
 
 <p>The Struts 2 iterator tag has additional attributes you can use to control the begin and end values for specifying that the iterator tag should only loop over a part of the collection. See the <a href="https://cwiki.apache.org/confluence/display/WW/iterator">iterator tag reference</a> for more information.</p>
 
diff --git a/content/getting-started/debugging-struts.html b/content/getting-started/debugging-struts.html
index 830561c..d6140ac 100644
--- a/content/getting-started/debugging-struts.html
+++ b/content/getting-started/debugging-struts.html
@@ -119,23 +119,42 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/debugging-struts.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="debugging-struts">Debugging Struts</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="debugging-struts">Debugging Struts</h1>
 
-<p>The example code for this tutorial, debugging_struts, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#configuration-plugin" id="markdown-toc-configuration-plugin">Configuration Plugin</a></li>
+  <li><a href="#using-the-debugging-interceptor" id="markdown-toc-using-the-debugging-interceptor">Using the Debugging Interceptor</a></li>
+  <li><a href="#struts-2-logging" id="markdown-toc-struts-2-logging">Struts 2 Logging</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>debugging-struts</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
-<p>During development of a Struts 2 web application you may want to view the information being managed by the Struts 2 framework. This tutorial will cover two tools you can use to see how Struts 2 views your web application. One tool is the Struts 2 configuration plugin and the other is the debugging interceptor. This article also discusses how to set the log level to see more or fewer log messages.</p>
+<h2 id="introduction">Introduction</h2>
 
-<p>The Struts 2 <a href="http://struts.apache.org/mail.html">user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>During development of a Struts 2 web application you may want to view the information being managed by the Struts 2 framework. 
+This tutorial will cover two tools you can use to see how Struts 2 views your web application. One tool is the Struts 2 
+configuration plugin and the other is the debugging interceptor. This article also discusses how to set the log level 
+to see more or fewer log messages.</p>
 
-<p><strong>Configuration Plugin</strong></p>
+<p>The Struts 2 <a href="http://struts.apache.org/mail.html">user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p>The Struts 2 config browser plugin provides details about the configuration the Struts 2 framework is using to run your application. To use the plugin your application needs to have the struts2-config-browser-plugin-x.x.x.x.jar in your application’s class path. The config-browser-plugin jar is part of the Struts 2 download and is also available in the Maven repository.</p>
+<h2 id="configuration-plugin">Configuration Plugin</h2>
 
-<p>To use the plugin in your application, just call index.action in namespace config-browser. For example you could have the following link on your admin page (or just anywhere during your development).</p>
+<p>The Struts 2 config browser plugin provides details about the configuration the Struts 2 framework is using to run your 
+application. To use the plugin your application needs to have the struts2-config-browser-plugin-x.x.x.x.jar in your 
+application’s class path. The config-browser-plugin jar is part of the Struts 2 download and is also available in the Maven 
+repository.</p>
+
+<p>To use the plugin in your application, just call index.action in namespace <code class="highlighter-rouge">config-browser</code>. For example you could have 
+the following link on your admin page (or just anywhere during your development).</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">'&lt;s:url action="index" namespace="config-browser" /&gt;'</span><span class="nt">&gt;</span>Launch the configuration browser<span class="nt">&lt;/a&gt;</span>
 </code></pre>
@@ -147,35 +166,55 @@
 
 <p><img src="attachments/att17137672_debuging-struts-1.png" alt="debuging-struts-1.png" /></p>
 
-<p>You can click on an action link to see the configuration for that action. For example clicking on the register action link results in this.</p>
+<p>You can click on an action link to see the configuration for that action. For example clicking on the register action 
+link results in this.</p>
 
 <p><img src="attachments/att17137673_debuging-struts-2.png" alt="debuging-struts-2.png" /></p>
 
-<p>You may then click on one of the tabs (Results, Exception Mappings, Interceptors, Properties, Validators) to get more information about how the Struts 2 framework is has configured that specific action.</p>
+<p>You may then click on one of the tabs (Results, Exception Mappings, Interceptors, Properties, Validators) to get more 
+information about how the Struts 2 framework is has configured that specific action.</p>
 
-<p>On the left side of the page is the config browser plugin menu. Clicking on constants will render a view that lists all the Struts 2 constants and their properties for your application. Clicking on beans shows the beans Struts 2 is managing. Clicking on Jars shows the jars your application is using.</p>
+<p>On the left side of the page is the config browser plugin menu. Clicking on constants will render a view that lists all 
+the Struts 2 constants and their properties for your application. Clicking on beans shows the beans Struts 2 is managing. 
+Clicking on Jars shows the jars your application is using.</p>
 
-<p><strong>Using the Debugging Interceptor</strong></p>
+<h2 id="using-the-debugging-interceptor">Using the Debugging Interceptor</h2>
 
-<p>If you have set <code class="highlighter-rouge">devMode</code> to true (in the example application see <code class="highlighter-rouge">struts.xml</code>) then one of the interceptors that is activated when Struts 2 processes an action is the DebuggingInterceptor. The DebuggingInterceptor looks for a query string appended to the action URL with a name of debug and a value of xml, console, command, or browser.</p>
+<p>If you have set <code class="highlighter-rouge">devMode</code> to true (in the example application see <code class="highlighter-rouge">struts.xml</code>) then one of the interceptors that is 
+activated when Struts 2 processes an action is the DebuggingInterceptor. The DebuggingInterceptor looks for a query 
+string appended to the action URL with a name of debug and a value of xml, console, command, or browser.</p>
 
-<p>If the DebuggingInterceptor finds that query string then it will halt further execution of the action and instead return to the browser debugging information. The format of the returned information depends on the value of the debug query parameter. See <a href="//struts.apache.org/docs/debugginginterceptor.html">DebuggingInterceptor</a>  for more detail.</p>
+<p>If the <code class="highlighter-rouge">DebuggingInterceptor</code> finds that query string then it will halt further execution of the action and instead return 
+to the browser debugging information. The format of the returned information depends on the value of the debug query parameter. 
+See <a href="../core-developers/debugging-interceptor.html">DebuggingInterceptor</a> for more detail.</p>
 
-<p>In the example application on the index.jsp is a link for displaying debugging information. This link includes the query string debug=browser. If you click on this link you’ll see a table with columns that can be expanded and collapsed. The table contains the various objects and their state being managed by the Struts 2 framework.</p>
+<p>In the example application on the index.jsp is a link for displaying debugging information. This link includes the query 
+string <code class="highlighter-rouge">debug=browser</code>. If you click on this link you’ll see a table with columns that can be expanded and collapsed. 
+The table contains the various objects and their state being managed by the Struts 2 framework.</p>
 
 <p><img src="attachments/att17137674_debuging-struts-3.png" alt="debuging-struts-3.png" /></p>
 
-<p>Note that to enable the correct display and interaction of the expand/collapse links on the debugging information web page you need to include the s:head tag in your JSP’s head section (see index.jsp in the example application) and also include the Struts 2 dojo plugin in your application’s class path. The Struts 2 dojo plugin is available as part of the Struts 2 download and from the Maven repository.</p>
+<p>Note that to enable the correct display and interaction of the expand/collapse links on the debugging information web page 
+you need to include the <code class="highlighter-rouge">s:head</code> tag in your JSP’s head section (see index.jsp in the example application) and also include 
+the Struts 2 dojo plugin in your application’s class path. The Struts 2 dojo plugin is available as part of the Struts 2 
+download and from the Maven repository.</p>
 
-<p><strong>Struts 2 Logging</strong></p>
+<h2 id="struts-2-logging">Struts 2 Logging</h2>
 
-<p>The Struts 2 framework will write to a log a great deal of information if you’ve configured the log properties to log at the debug level. In the example application, view <code class="highlighter-rouge">log4j.xml</code>. The two major packages involved in the Struts 2 framework, <code class="highlighter-rouge">com.opensymphony</code> and <code class="highlighter-rouge">org.apache.struts2</code>, are configured to write debug and above log messages. When you run the application view th [...]
+<p>The Struts 2 framework will write to a log a great deal of information if you’ve configured the log properties to log at 
+the debug level. In the example application, view <code class="highlighter-rouge">log4j2.xml</code>. The two major packages involved in the Struts 2 framework, 
+<code class="highlighter-rouge">com.opensymphony</code> and <code class="highlighter-rouge">org.apache.struts2</code>, are configured to write debug and above log messages. When you run the application 
+view the standard out for your Servlet container to see all the information written to the log. Please check <a href="../core-developers/logging.html">Logging</a>
+page for other options.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>Using the configuration browser plugin and the debugging interceptor can assist you in trouble shooting a problem with a Struts 2 web application. These tools should only be used in development.</p>
+<p>Using the configuration browser plugin and the debugging interceptor can assist you in trouble shooting a problem with 
+a Struts 2 web application. These tools should only be used in development.</p>
 
-<p>Prior to creating your war file for deployment to production you should change devmode to false and remove the debugging links. You may also want to adjust the level of logging in your log properties file to a higher level (info or warn) to reduce the number of log messages.</p>
+<p>Prior to creating your war file for deployment to production you should change <code class="highlighter-rouge">devMode</code> to false and remove the debugging 
+links. You may also want to adjust the level of logging in your log properties file to a higher level (info or warn) to reduce 
+the number of log messages.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/exception-handling.html b/content/getting-started/exception-handling.html
index b00d941..a6faab4 100644
--- a/content/getting-started/exception-handling.html
+++ b/content/getting-started/exception-handling.html
@@ -119,19 +119,30 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/exception-handling.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="exception-handling">Exception Handling</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="exception-handling">Exception Handling</h1>
 
-<p>The code for this tutorial, exception_handling, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#global-exception-handling" id="markdown-toc-global-exception-handling">Global Exception Handling</a></li>
+  <li><a href="#exception-handling-per-action" id="markdown-toc-exception-handling-per-action">Exception Handling Per Action</a></li>
+  <li><a href="#logging-exceptions" id="markdown-toc-logging-exceptions">Logging Exceptions</a></li>
+  <li><a href="#display-exception-information-in-browser" id="markdown-toc-display-exception-information-in-browser">Display Exception Information In Browser</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The code for this tutorial, <strong>exception-handling</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
+
+<h2 id="introduction">Introduction</h2>
 
 <p>In this tutorial we’ll explore how to enable the Struts 2 framework to handle any uncaught exceptions generated by a web application. Struts 2 provides robust exception handling, including the ability to automatically log any uncaught exceptions and redirect the user to a error web page.</p>
 
 <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Global Exception Handling</strong></p>
+<h2 id="global-exception-handling">Global Exception Handling</h2>
 
 <p>Using the Struts 2 framework you can specify in the struts.xml how the framework should handle uncaught exceptions. The handling logic can apply to all actions (global exception handling) or to a specific action. Let’s first discuss how to enable global exception handling.</p>
 
@@ -153,7 +164,7 @@
 
 <p>The global results mapping node relates the result value to a specific view page. For example the result “securityerror” will cause the framework to redirect the user’s browser to the securityerror.jsp view page.</p>
 
-<p><strong>Exception Handling Per Action</strong></p>
+<h2 id="exception-handling-per-action">Exception Handling Per Action</h2>
 
 <p>If you need to handle an exception in a specific way for a certain action you can use the exception-mapping node within the action node.</p>
 
@@ -169,7 +180,7 @@
 
 <p>You can see that an action-specific exception mapping will take precedence if the same exception is also mapped globally.</p>
 
-<p><strong>Logging Exceptions</strong></p>
+<h2 id="logging-exceptions">Logging Exceptions</h2>
 
 <p>You can configure the Struts 2 framework to log any uncaught exceptions. To enable logging of the exceptions being handled by the Struts 2 framework you must specify some parameter values in struts.xml. If you examine the <a href="https://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.html">ExceptionMappingInterceptor class API</a> there are three parameter values you can set to enable logging (logEnabled), the log level to [...]
 
@@ -196,7 +207,7 @@
 
 <p>In the example applications, the logging is just to the Servlet container’s console (see the <code class="highlighter-rouge">log4j.xml</code> file for the log settings).</p>
 
-<p><strong>Display Exception Information In Browser</strong></p>
+<h2 id="display-exception-information-in-browser">Display Exception Information In Browser</h2>
 
 <p>You can display information about the exception in the browser if you want by using s:property tags with a value of exception and exceptionStack. For example in error.jsp is this markup.</p>
 
@@ -212,7 +223,7 @@
 
 <p>When the exception interceptor is triggered it adds to the fields available for display the exception message and the exception’s stack trace.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
 <p>Struts 2 provides a easy to use configuration for handling uncaught exceptions and redirecting users to appropriate view pages. You can configure exception handling to be global for all actions or to just for a specific action. You can also enable the Struts 2 framework to log the uncaught exceptions.</p>
 
diff --git a/content/getting-started/exclude-parameters.html b/content/getting-started/exclude-parameters.html
index 6489bab..56b9d6e 100644
--- a/content/getting-started/exclude-parameters.html
+++ b/content/getting-started/exclude-parameters.html
@@ -119,21 +119,42 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/exclude-parameters.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="exclude-parameters">Exclude Parameters</h1>
-
-<p>The example code for this tutorial, exclude_parameters, is available at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
-
-<p><strong>Introduction</strong></p>
-
-<p>When <a href="//struts.apache.org/docs/strutsproperties.html">Struts development mode is set to true</a> (also see <a href="debugging-struts.html">Debugging Struts</a>) the framework writes many informative messages to the log file. These messages include ones that indicate whether or not a specific parameter will be handled by the parameter interceptor and made available to the Action class. These log messages can be helpful in clearly identifying parameters that you do not want the  [...]
-
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
-
-<p><strong>Processing Request Parameters</strong></p>
-
-<p>Most request parameters are by default processed by the parameter interceptor and Struts 2 will attempt to modify the state of those Action class fields that match up to a parameter name by calling a corresponding public set method. For example if the request includes a parameter of lastName with a value of Phillips, Struts 2 will try to call a public method with a signature of setLastName(String lastName). However, there may be request parameters that you do not want Struts 2 to try  [...]
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="exclude-parameters">Exclude Parameters</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#processing-request-parameters" id="markdown-toc-processing-request-parameters">Processing Request Parameters</a></li>
+  <li><a href="#excluding-request-parameters-from-struts-2-processing" id="markdown-toc-excluding-request-parameters-from-struts-2-processing">Excluding Request Parameters From Struts 2 Processing</a></li>
+  <li><a href="#example-application" id="markdown-toc-example-application">Example Application</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+<p>The example code for this tutorial, <strong>exclude-parameters</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
+
+<h2 id="introduction">Introduction</h2>
+
+<p>When <a href="../core-developers/struts-xml.html">Struts development mode is set to true</a> (also see <a href="debugging-struts.html">Debugging Struts</a>) 
+the framework writes many informative messages to the log file. These messages include ones that indicate whether 
+or not a specific parameter will be handled by the parameter interceptor and made available to the Action class. 
+These log messages can be helpful in clearly identifying parameters that you do not want the parameter interceptor 
+to process for security or other reasons. This article discusses how to exclude parameters from being handled by 
+the parameter interceptor.</p>
+
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
+
+<h2 id="processing-request-parameters">Processing Request Parameters</h2>
+
+<p>Most request parameters are by default processed by the parameter interceptor and Struts 2 will attempt to modify the state 
+of those Action class fields that match up to a parameter name by calling a corresponding public set method. For example 
+if the request includes a parameter of lastName with a value of Phillips, Struts 2 will try to call a public method with 
+a signature of setLastName(String lastName). However, there may be request parameters that you do not want Struts 2 
+to try to set the value of in the Action class.</p>
 
 <p>Consider this code which creates a form:</p>
 
@@ -154,7 +175,8 @@
 </code></pre>
 </div>
 
-<p>The s:submit tag will create a submit button with a name of submit. Since the Action class probably doesn’t have a setSubmit(String name) method you will see the following log messages (only if Struts development mode is set to true):</p>
+<p>The s:submit tag will create a submit button with a name of submit. Since the Action class probably doesn’t have 
+a <code class="highlighter-rouge">setSubmit(String name)</code> method you will see the following log messages (only if Struts development mode is set to true):</p>
 
 <p><strong>Log Messages</strong></p>
 
@@ -168,11 +190,14 @@ Unexpected Exception caught setting 'submit' on 'class org.apache.struts.edit.ac
 </code></pre>
 </div>
 
-<p><strong>Excluding Request Parameters From Struts 2 Processing</strong></p>
+<h2 id="excluding-request-parameters-from-struts-2-processing">Excluding Request Parameters From Struts 2 Processing</h2>
 
 <p>If you’re not familiar with setting up a custom interceptor stack for your Struts 2 application review <a href="introducing-interceptors.html">Introducing Interceptors</a>.</p>
 
-<p>To exclude specific parameters from being processed by the Struts 2 framework you need to add those parameter names to the list of excluded parameters. One way to do this is by adding those parameter names to the collection of excludedParams for the Parameters interceptor. You can do this by modifying the Parameters interceptor in setting up the stack of interceptors used by your Struts 2 application. For example:</p>
+<p>To exclude specific parameters from being processed by the Struts 2 framework you need to add those parameter names 
+to the list of excluded parameters. One way to do this is by adding those parameter names to the collection of <code class="highlighter-rouge">excludedParams</code> 
+for the Parameters interceptor. You can do this by modifying the Parameters interceptor in setting up the stack of interceptors 
+used by your Struts 2 application. For example:</p>
 
 <p><strong>Setup Interceptor Stack To Exclude submit Parameter</strong></p>
 
@@ -190,19 +215,29 @@ Unexpected Exception caught setting 'submit' on 'class org.apache.struts.edit.ac
 </code></pre>
 </div>
 
-<p>The value of node <code class="highlighter-rouge">&lt;param name="params.excludeParams"&gt;</code> is a comma-delimited list of regular expressions or simple Strings that identify request parameters that should NOT be processed by the Parameters interceptor. To exclude the submit parameter (which is the name of the submit button in the form code above), I just added submit to the list.</p>
+<p>The value of node <code class="highlighter-rouge">&lt;param name="params.excludeParams"&gt;</code> is a comma-delimited list of regular expressions or simple 
+Strings that identify request parameters that should NOT be processed by the Parameters interceptor. To exclude 
+the <code class="highlighter-rouge">submit</code> parameter (which is the name of the submit button in the form code above), I just added <code class="highlighter-rouge">submit</code> to the list.</p>
 
-<p>See the <a href="//struts.apache.org/docs/struts-defaultxml.html">Basic Stack of Interceptors described here</a> to view the initial set of parameter names/regular expressions to exclude. Be sure to copy over the list of parameters already being excluded and then add your own parameters to the end separated by commas.</p>
+<p>See the <a href="../core-developers/struts-default-xml.html">Basic Stack of Interceptors described here</a> to view the initial 
+set of parameter names/regular expressions to exclude. Be sure to copy over the list of parameters already being excluded 
+and then add your own parameters to the end separated by commas.</p>
 
-<p><strong>Example Application</strong></p>
+<h2 id="example-application">Example Application</h2>
 
-<p>Download the example application, <a href="http://code.google.com/p/struts2-examples/downloads/list">Exclude_Params_Struts2_Mvn</a> that demonstrates excluding a request parameter. The download is a zipped Maven project. You should be able to unzip it and import the project into any Maven-aware Java IDE. See the project’s README.txt file for how to build and run the application.</p>
+<p>Download the example application, <a href="https://github.com/apache/struts-examples/tree/master/exclude-parameters">exclude-params</a> 
+that demonstrates excluding a request parameter. See the project’s README.txt file for how to build and run the application.</p>
 
-<p>To see the log messages written when not excluding the submit parameter remove the “,submit” from the list of excluded parameter values in the struts.xml file. Then rebuild and redeploy the application and view the console when running the application.</p>
+<p>To see the log messages written when not excluding the submit parameter remove the <code class="highlighter-rouge">,submit</code> from the list of excluded 
+parameter values in the struts.xml file. Then rebuild and redeploy the application and view the console when running the application.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>It’s a nice feature of the Struts 2 framework that it logs during development which request parameters will and will not be processed. During development of a Struts 2 web application it’s a good practice to review these log messages to determine if there are any parameters that the framework should not process. For those parameters the Struts 2 framework should not process add the parameter name (or a regular expression that can be used to identify multiple parameter names) to the co [...]
+<p>It’s a nice feature of the Struts 2 framework that it logs during development which request parameters will and will not 
+be processed. During development of a Struts 2 web application it’s a good practice to review these log messages to determine 
+if there are any parameters that the framework should not process. For those parameters the Struts 2 framework should 
+not process add the parameter name (or a regular expression that can be used to identify multiple parameter names) 
+to the comma-delimited list that is the value for the <code class="highlighter-rouge">&lt;param name="params.excludeParams"&gt;</code> node.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/form-tags.html b/content/getting-started/form-tags.html
index 4bd3cc2..1e6e558 100644
--- a/content/getting-started/form-tags.html
+++ b/content/getting-started/form-tags.html
@@ -119,13 +119,26 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/form-tags.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="form-tags">Form Tags</h1>
-
-<p>The example code for this tutorial, form_tags, can be checked out from <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
-
-<p><strong>Introduction</strong></p>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="form-tags">Form Tags</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#example-application" id="markdown-toc-example-application">Example Application</a></li>
+  <li><a href="#struts-2-select-tag" id="markdown-toc-struts-2-select-tag">Struts 2 Select Tag</a></li>
+  <li><a href="#struts-2-radio-tag" id="markdown-toc-struts-2-radio-tag">Struts 2 Radio Tag</a></li>
+  <li><a href="#struts-2-select-tag---object-backed" id="markdown-toc-struts-2-select-tag---object-backed">Struts 2 Select Tag - Object Backed</a></li>
+  <li><a href="#struts-2-checkbox-tag" id="markdown-toc-struts-2-checkbox-tag">Struts 2 Checkbox Tag</a></li>
+  <li><a href="#struts-2-checkboxlist-tag" id="markdown-toc-struts-2-checkboxlist-tag">Struts 2 checkboxlist Tag</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+<p>The example code for this tutorial, <strong>form-tags</strong>, can be checked out from <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
+
+<h2 id="introduction">Introduction</h2>
 
 <p>In this tutorial we’ll explore some of the other Struts 2 form controls. In our previous tutorials that explained how 
 to use Struts 2 forms (<a href="processing-forms.html">Processing forms</a>, <a href="form-validation.html">Form validation</a>, 
@@ -137,7 +150,7 @@ form controls.</p>
 having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find 
 an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Example Application</strong></p>
+<h2 id="example-application">Example Application</h2>
 
 <p>The example application that supports this tutorial shows how to use Struts 2 form tags so that a user can edit his 
 information. The information that can be edited is encapsulated in an object of class Person. A Person object knows 
@@ -154,7 +167,7 @@ of the Person object.</p>
 <p>The first and last names are shown on the form (see edit.jsp) using the Struts 2 textfield tag, which we’ve discussed 
 in previous tutorials.</p>
 
-<p><strong>Struts 2 Select Tag</strong></p>
+<h2 id="struts-2-select-tag">Struts 2 Select Tag</h2>
 
 <p>A user can select one favorite sport from several choices. The example application uses the Struts 2 select tag 
 to provide the list of options for the select box.</p>
@@ -212,7 +225,7 @@ head section.</p>
 
 <p>Since the personBean’s getSport method returns “baskeball”, the basketball option value is marked as selected.</p>
 
-<p><strong>Struts 2 Radio Tag</strong></p>
+<h2 id="struts-2-radio-tag">Struts 2 Radio Tag</h2>
 
 <p>The Struts 2 radio tag—like its standard HTML counterpart—is used to display 2 or more choices, only one of which can 
 be selected by the user. Here is the code for the Struts 2 radio button from the example application.</p>
@@ -251,7 +264,7 @@ The Array of String objects returned are used to create the individual radio but
 <p>Also just like the Struts 2 select tag the result returned by calling the personBean object’s getGender method is used
 to determine which of the radio buttons is checked.</p>
 
-<p><strong>Struts 2 Select Tag - Object Backed</strong></p>
+<h2 id="struts-2-select-tag---object-backed">Struts 2 Select Tag - Object Backed</h2>
 
 <p>You may need to create a Struts 2 select tag where the options displayed to the user each have their own value that is
 different then what is displayed. In the example application, the user’s residency is stored as a two-letter 
@@ -294,7 +307,7 @@ displayed to the user. So the above Struts 2 select tag code results in this HTM
 tags is marked as selected. In our example, since getResidency returns “KS”, the option tag whose value attribute 
 equals “KS” is marked as selected.</p>
 
-<p><strong>Struts 2 Checkbox Tag</strong></p>
+<h2 id="struts-2-checkbox-tag">Struts 2 Checkbox Tag</h2>
 
 <p>The Struts 2 checkbox tag is used to create the HTML input type equals checkbox tag. The value for the key attribute 
 tells the framework what method to call to determine if the checkbox is checked or not checked. The method called should 
@@ -333,7 +346,7 @@ hidden form field to check if the associated checkbox field exists in the posted
 doesn’t exist then the Struts 2 framework will know to update the value of the personBean object’s over21 instance 
 variable to false.</p>
 
-<p><strong>Struts 2 checkboxlist Tag</strong></p>
+<h2 id="struts-2-checkboxlist-tag">Struts 2 checkboxlist Tag</h2>
 
 <p>The Struts 2 framework provides a unique form field control that creates a series of associated check boxes, one or more
 of which can be checked. In the example application, the Person class has an Array of Strings, which is used to store 
@@ -383,7 +396,7 @@ the checkbox will be checked.</p>
 </code></pre>
 </div>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
 <p>There are several other Struts 2 form controls you should explore. If you need more information about the Struts 2 form 
 tags consult the Struts 2 documentation at <a href="http://struts.apache.org">http://struts.apache.org</a>.</p>
diff --git a/content/getting-started/form-validation-using-xml.html b/content/getting-started/form-validation-using-xml.html
index b560c61..901ec93 100644
--- a/content/getting-started/form-validation-using-xml.html
+++ b/content/getting-started/form-validation-using-xml.html
@@ -119,19 +119,32 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/form-validation-using-xml.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="form-validation-using-xml">Form Validation Using XML</h1>
-
-<p>The example code for this tutorial, form_xml_validation, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
-
-<p><strong>Introduction</strong></p>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="form-validation-using-xml">Form Validation Using XML</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#example-application" id="markdown-toc-example-application">Example Application</a></li>
+  <li><a href="#validation-using-xml" id="markdown-toc-validation-using-xml">Validation Using XML</a></li>
+  <li><a href="#xml-validator-format" id="markdown-toc-xml-validator-format">XML Validator Format</a></li>
+  <li><a href="#validating-an-email-address" id="markdown-toc-validating-an-email-address">Validating An Email Address</a></li>
+  <li><a href="#validating-a-users-input-using-a-regular-expression" id="markdown-toc-validating-a-users-input-using-a-regular-expression">Validating A User’s Input Using A Regular Expression</a></li>
+  <li><a href="#validating-a-users-input-using-an-ognl-expression" id="markdown-toc-validating-a-users-input-using-an-ognl-expression">Validating A User’s Input Using An OGNL Expression</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
+
+<p>The example code for this tutorial, <strong>form-xml-validation</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
+
+<h2 id="introduction">Introduction</h2>
 
 <p>In this tutorial we’ll cover how to validate a user’s input in form fields using Struts 2’s XML validation methodology. In the <a href="form-validation.html">Form Validation</a> tutorial we discussed validating a user’s input using the validate method in the Action class. Using a separate XML validation file gives you the ability to use validators built-in to the Struts 2 framework.</p>
 
 <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Example Application</strong></p>
+<h2 id="example-application">Example Application</h2>
 
 <p>The example application that supports this tutorial shows how to use Struts 2’s XML validation methodology. The information that can be edited is encapsulated in an object of class Person.</p>
 
@@ -141,7 +154,7 @@
 
 <p>When the user submits the form, we want to validate his entries into the form fields.</p>
 
-<p><strong>Validation Using XML</strong></p>
+<h2 id="validation-using-xml">Validation Using XML</h2>
 
 <p>To validate a user’s form field entries you can use a separate XML file that contains your validation rules. The XML file that contains the validation rules must be named as ActionClassName-validation.xml. In the example application, the XML validation file is named EditAction-validation.xml (see src/main/resources/org/apache/struts/edit/action).</p>
 
@@ -149,7 +162,7 @@
 
 <p>In the above form, we want to ensure the user enters a first name. To have the Struts 2 framework enforce that rule we can used the Struts 2 <a href="../core-developers/requiredstring-validator.html">requiredstring validator</a>. This validator checks that the user has entered a string value in the form field.</p>
 
-<p><strong>XML Validator Format</strong></p>
+<h2 id="xml-validator-format">XML Validator Format</h2>
 
 <p>In the XML validation file (for this example that is EditAction-validation.xml), is this XML:</p>
 
@@ -180,7 +193,7 @@
 
 <p><img src="attachments/att20873264_form-validation-2.png" alt="form-validation-2.png" /></p>
 
-<p><strong>Validating An Email Address</strong></p>
+<h2 id="validating-an-email-address">Validating An Email Address</h2>
 
 <p>You can use the Struts 2 <a href="../core-developers/email-validator.html">email validator</a> to validate the user’s input in the email field. Here is the validator node that is in the <code class="highlighter-rouge">EditAction-validation.xml</code> file.</p>
 
@@ -199,7 +212,7 @@
 
 <p>Note that in the example, we are requiring the user to enter an email address and then validating the email address the user entered.</p>
 
-<p><strong>Validating A User’s Input Using A Regular Expression</strong></p>
+<h2 id="validating-a-users-input-using-a-regular-expression">Validating A User’s Input Using A Regular Expression</h2>
 
 <p>The Struts 2 framework provides a powerful way to validate a user’s form field input by using the <a href="../core-developers/regex-validator.html">regex validator</a> . In the example application, we want to ensure the user enters the phone number in the format 999-999-9999. We can use a regular expression and the <a href="../core-developers/regex-validator.html">regex validator</a> to enforce this rule.</p>
 
@@ -219,7 +232,7 @@
 
 <p>The param name=”expression” node is used to specify the regular expression that will be applied to the user’s input. Note how the regular expression is contained within a CDATA section.</p>
 
-<p><strong>Validating A User’s Input Using An OGNL Expression</strong></p>
+<h2 id="validating-a-users-input-using-an-ognl-expression">Validating A User’s Input Using An OGNL Expression</h2>
 
 <p>In the example application, we want to ensure the user checks at least one of the car model check boxes. To enforce this rule we can use the <a href="../core-developers/fieldexpression-validator.html">fieldexpression validator</a> . Here’s the XML for that validator node.</p>
 
@@ -243,7 +256,7 @@
 
 <p>The fieldexpression validator is useful when doing conditional validation of a user’s input. If the OGNL expression doesn’t evaluate to true then the user’s input won’t be allowed.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
 <p>The Struts 2 framework provides easy-to-use validation methodologies. You can add a validate method to the Action class or have a separate XML file with validation rules or you can use a combination of both methodologies.</p>
 
diff --git a/content/getting-started/form-validation.html b/content/getting-started/form-validation.html
index 2367c0f..3c4c38b 100644
--- a/content/getting-started/form-validation.html
+++ b/content/getting-started/form-validation.html
@@ -119,25 +119,40 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/form-validation.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="form-validation">Form Validation</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="form-validation">Form Validation</h1>
 
-<p>This tutorial assumes you’ve completed the <a href="processing-forms.html">Processing Forms</a> tutorial and have a working form_processing project. The example code for this tutorial, form_validation, is available for checkout from the Struts 2 GitHub repository: <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#add-validate-method" id="markdown-toc-add-validate-method">Add validate Method</a></li>
+  <li><a href="#handle-input-being-returned" id="markdown-toc-handle-input-being-returned">Handle Input Being Returned</a></li>
+  <li><a href="#error-messages" id="markdown-toc-error-messages">Error Messages</a></li>
+  <li><a href="#styling-the-error-messages" id="markdown-toc-styling-the-error-messages">Styling The Error Messages</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+  <li><a href="#up-next" id="markdown-toc-up-next">Up Next</a></li>
+</ul>
 
-<blockquote>
+<p>This tutorial assumes you’ve completed the <a href="processing-forms.html">Processing Forms</a> tutorial and have a working 
+<strong>form-processing</strong> project. The example code for this tutorial, <strong>form-validation</strong>, is available for checkout from 
+the Struts 2 GitHub repository <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
-</blockquote>
+<h2 id="introduction">Introduction</h2>
 
-<p><strong>Introduction</strong></p>
+<p>In this tutorial we’ll explore using Struts 2 to validate the user’s input on a form. There are two ways you can use Struts 2 
+to do form validation. This tutorial will cover the more basic method, where the validation is included in the Struts 2 Action class.</p>
 
-<p>In this tutorial we’ll explore using Struts 2 to validate the user’s input on a form. There are two ways you can use Struts 2 to do form validation. This tutorial will cover the more basic method, where the validation is included in the Struts 2 Action class.</p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<h2 id="add-validate-method">Add validate Method</h2>
 
-<p><strong>Add validate Method</strong></p>
-
-<p>To enable the Struts 2 Action class to validate a user’s input on a Struts 2 form, you must define a validate method in your Action class. Using the example from <em>Processing Forms</em>  tutorial, let’s say that we have these business rules:</p>
+<p>To enable the Struts 2 Action class to validate a user’s input on a Struts 2 form, you must define a validate method 
+in your Action class. Using the example from <a href="processing-forms.html">Processing Forms</a> tutorial, let’s say that we have 
+these business rules:</p>
 
 <ol>
   <li>User must provide a first name</li>
@@ -145,11 +160,14 @@
   <li>User younger then 18 cannot register</li>
 </ol>
 
-<p>If you recall from the <a href="processing-forms.html">Processing Forms</a> tutorial the user’s input into the form fields is placed by Struts 2 into the Java model class personBean. So a user’s input into the firstName field would end up as the value for personBean’s firstName instance field (via the personBean.setFirstName method).</p>
+<p>If you recall from the <a href="processing-forms.html">Processing Forms</a> tutorial the user’s input into the form fields is placed 
+by Struts 2 into the Java model class <code class="highlighter-rouge">personBean</code>. So a user’s input into the <code class="highlighter-rouge">firstName</code> field would end up as the value 
+for <code class="highlighter-rouge">personBean</code>’s <code class="highlighter-rouge">firstName</code> instance field (via the <code class="highlighter-rouge">personBean.setFirstName</code> method).</p>
 
-<p>In the validate method we can refer to get the values of personBean’s instance fields by using the appropriate get methods. Once we have the values we can employ logic to enforce our business rules.</p>
+<p>In the validate method we can refer to get the values of personBean’s instance fields by using the appropriate get methods. 
+Once we have the values we can employ logic to enforce our business rules.</p>
 
-<p>Add the following validate method to Register.java (the Action class).</p>
+<p>Add the following validate method to <code class="highlighter-rouge">Register.java</code> (the Action class).</p>
 
 <p><strong>validate method</strong></p>
 
@@ -169,15 +187,19 @@
 </code></pre>
 </div>
 
-<p>When the user presses the submit button on the register form, Struts 2 will transfer the user’s input to the personBean’s instance fields. Then Struts 2 will automatically execute the validate method. If any of the if statements are true, Struts 2 will call its addFieldError method (which our Action class inherited by extending ActionSupport).</p>
+<p>When the user presses the submit button on the register form, Struts 2 will transfer the user’s input to the personBean’s 
+instance fields. Then Struts 2 will automatically execute the validate method. If any of the if statements are true, 
+Struts 2 will call its <code class="highlighter-rouge">addFieldError</code> method (which our Action class inherited by extending ActionSupport).</p>
 
-<p>If any errors have been added then Struts 2 will not proceed to call the execute method. Rather the Struts 2 framework will return “input” as the result of calling the action.</p>
+<p>If any errors have been added then Struts 2 will not proceed to call the execute method. Rather the Struts 2 framework 
+will return <code class="highlighter-rouge">input</code> as the result of calling the action.</p>
 
-<p><strong>Handle Input Being Returned</strong></p>
+<h2 id="handle-input-being-returned">Handle Input Being Returned</h2>
 
-<p>So what should we do if Struts 2 returns “input” indicating that the user’s input in the form is not valid? In most cases we will want to redisplay the web page that has the form and include in the form error messages to inform the user what is wrong.</p>
+<p>So what should we do if Struts 2 returns <code class="highlighter-rouge">input</code> indicating that the user’s input in the form is not valid? In most cases 
+we will want to redisplay the web page that has the form and include in the form error messages to inform the user what is wrong.</p>
 
-<p>To handle the return value of “input” we need to add the following result to our action node in struts.xml.</p>
+<p>To handle the return value of <code class="highlighter-rouge">input</code> we need to add the following result to our action node in <code class="highlighter-rouge">struts.xml</code>.</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;result</span> <span class="na">name=</span><span class="s">"input"</span><span class="nt">&gt;</span>/register.jsp<span class="nt">&lt;/result&gt;</span>
 </code></pre>
@@ -185,35 +207,44 @@
 
 <p>The above result node goes just after the success result node for the register action and before the closing of the action node.</p>
 
-<p><strong>Error Messages</strong></p>
+<h2 id="error-messages">Error Messages</h2>
 
-<p>So when validation fails and Struts 2 returns input, the Struts 2 framework will redisplay the register.jsp. Since we used Struts 2 form tags, automatically Struts 2 will add the error messages. These error messages are the ones we specified in the addFieldError method call. The addFieldError method takes two arguments. The first is the form field name to which the error applies and the second is the error message to display above that form field.</p>
+<p>So when validation fails and Struts 2 returns input, the Struts 2 framework will redisplay the <code class="highlighter-rouge">register.jsp</code>. Since we 
+used Struts 2 form tags, automatically Struts 2 will add the error messages. These error messages are the ones we specified 
+in the <code class="highlighter-rouge">addFieldError</code> method call. The addFieldError method takes two arguments. The first is the form field name to which 
+the error applies and the second is the error message to display above that form field.</p>
 
-<p>So the following addFieldError method call:</p>
+<p>So the following <code class="highlighter-rouge">addFieldError</code> method call:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="n">addFieldError</span><span class="o">(</span><span class="s">"personBean.firstName"</span><span class="o">,</span> <span class="s">"First name is required."</span><span class="o">)</span>
 </code></pre>
 </div>
 
-<p>will cause the message “First name is required” to be displayed above the firstName field on the form.</p>
+<p>will cause the message <em>First name is required</em> to be displayed above the <code class="highlighter-rouge">firstName</code> field on the form.</p>
 
-<p>If you have made the above changes to the <em>Processing Forms</em>  tutorial or you have downloaded from <a href="http://code.google.com/p/struts2-examples/downloads/list">Google Code</a> either the Form_Validation_Struts2_Ant or Form_Validation_Struts2_Mvn projects run the application (see the README.txt in the project root folder). Click on the Please register link. On the registration form, just click the submit button and you should see:</p>
+<p>If you have made the above changes to the <a href="processing-forms.html">Processing Forms</a> tutorial or you have downloaded 
+from <a href="https://github.com/apache/struts-examples/tree/master/form-validation">form-validation</a> 
+run the application (see the README.txt in the project root folder). Click on the Please register link. On the registration 
+form, just click the submit button and you should see:</p>
 
 <p><img src="attachments/att14975003_form_errors.png" alt="form_errors.png" /></p>
 
-<p>Struts 2 called the validate method, validation failed, the register.jsp was displayed with the error messages.</p>
+<p>Struts 2 called the validate method, validation failed, the <code class="highlighter-rouge">register.jsp</code> was displayed with the error messages.</p>
 
-<p><strong>Styling The Error Messages</strong></p>
+<h2 id="styling-the-error-messages">Styling The Error Messages</h2>
 
-<p>The Struts 2 s:head tag can be used to provide CSS that includes a style for the error message. Add <code class="highlighter-rouge">&lt;s:head /&gt;</code> to register.jsp before the closing HTML <code class="highlighter-rouge">&lt;/head&gt;</code> tag. Go through the same steps as above and you should see:</p>
+<p>The Struts 2 <code class="highlighter-rouge">s:head</code> tag can be used to provide CSS that includes a style for the error message. Add <code class="highlighter-rouge">&lt;s:head /&gt;</code> 
+to <code class="highlighter-rouge">register.jsp</code> before the closing HTML <code class="highlighter-rouge">&lt;/head&gt;</code> tag. Go through the same steps as above and you should see:</p>
 
 <p><img src="attachments/att14975001_form_errors_styled.png" alt="form_errors_styled.png" /></p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>This tutorial covered validating a user’s form input by adding a validate method to an Action class. There is another more sophisticated way to validate user input using XML. If you want to learn more about using XML for validation in Struts 2 see <a href="//struts.apache.org/docs/validation.html">Validation</a> .</p>
+<p>This tutorial covered validating a user’s form input by adding a validate method to an Action class. There is another 
+more sophisticated way to validate user input using XML. If you want to learn more about using XML for validation 
+in Struts 2 see <a href="../core-developers/validation.html">Validation</a> .</p>
 
-<p><strong>Up Next</strong></p>
+<h2 id="up-next">Up Next</h2>
 
 <p>In our next tutorial we’ll cover how to use message resource files to separate out the text from the view page.</p>
 
diff --git a/content/getting-started/hello-world-using-struts2.html b/content/getting-started/hello-world-using-struts2.html
index b8d501d..0f7bcab 100644
--- a/content/getting-started/hello-world-using-struts2.html
+++ b/content/getting-started/hello-world-using-struts2.html
@@ -119,35 +119,56 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/hello-world-using-struts2.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="hello-world-using-struts-2">Hello World Using Struts 2</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="hello-world-using-struts-2">Hello World Using Struts 2</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#description" id="markdown-toc-description">Description</a></li>
+  <li><a href="#the-code" id="markdown-toc-the-code">The Code</a>    <ul>
+      <li><a href="#step-1---create-the-model-class-messagestorejava" id="markdown-toc-step-1---create-the-model-class-messagestorejava">Step 1 - Create The Model Class MessageStore.java</a></li>
+      <li><a href="#step-2---create-the-action-class-helloworldactionjava" id="markdown-toc-step-2---create-the-action-class-helloworldactionjava">Step 2 - Create The Action Class HelloWorldAction.java</a></li>
+      <li><a href="#step-3---create-the-view-helloworldjsp" id="markdown-toc-step-3---create-the-view-helloworldjsp">Step 3 - Create The View HelloWorld.jsp</a></li>
+      <li><a href="#step-4---add-the-struts-configuration-in-strutsxml" id="markdown-toc-step-4---add-the-struts-configuration-in-strutsxml">Step 4 - Add The Struts Configuration In struts.xml</a></li>
+      <li><a href="#step-5---create-the-url-action" id="markdown-toc-step-5---create-the-url-action">Step 5 - Create The URL Action</a></li>
+      <li><a href="#step-6---build-the-war-file-and-run-the-application" id="markdown-toc-step-6---build-the-war-file-and-run-the-application">Step 6 - Build the WAR File and Run The Application</a></li>
+    </ul>
+  </li>
+  <li><a href="#how-the-code-works" id="markdown-toc-how-the-code-works">How the Code Works</a></li>
+  <li><a href="#what-to-remember" id="markdown-toc-what-to-remember">What to Remember</a></li>
+</ul>
 
-<p>When you click on a hyperlink or submit an HTML form in a Struts 2 web application, the input is not sent to another server page, but to a Java class that you provide. These classes are called Actions. After the Action fires, a Result selects a resource to render the response. The resource is generally a server page, but it can also be a PDF file, an Excel spreadsheet, or a Java applet window.</p>
+<h2 id="description">Description</h2>
 
-<p>Suppose you want to create a simple “Hello World” example that displays a welcome message. After setting up an empty basic Struts 2 web application (see <a href="how-to-create-a-struts2-web-application.html">How To Create A Struts 2 Web Application</a>), to create a “Hello World” example, you need to do four things:</p>
+<p>When you click on a hyperlink or submit an HTML form in a Struts 2 web application, the input is not sent to another 
+server page, but to a Java class that you provide. These classes are called Actions. After the Action fires, a Result 
+selects a resource to render the response. The resource is generally a server page, but it can also be a PDF file, 
+an Excel spreadsheet, or a Java applet window.</p>
+
+<p>Suppose you want to create a simple “Hello World” example that displays a welcome message. After setting up an empty 
+basic Struts 2 web application (see <a href="how-to-create-a-struts2-web-application.html">How To Create A Struts 2 Web Application</a>), 
+to create a “Hello World” example, you need to do four things:</p>
 
 <ol>
-  <li>
-    <p>Create a class to store the welcome message (the model)</p>
-  </li>
-  <li>
-    <p>Create a server page to present the message (the view)</p>
-  </li>
-  <li>
-    <p>Create an Action class to control the interaction between the user, the model, and the view (the controller)</p>
-  </li>
-  <li>
-    <p>Create a mapping (<code class="highlighter-rouge">struts.xml</code>) to couple the Action class and view</p>
-  </li>
+  <li>Create a class to store the welcome message (the model)</li>
+  <li>Create a server page to present the message (the view)</li>
+  <li>Create an Action class to control the interaction between the user, the model, and the view (the controller)</li>
+  <li>Create a mapping (<code class="highlighter-rouge">struts.xml</code>) to couple the Action class and view</li>
 </ol>
 
-<p>By creating these components, we are separating the work flow into three well-known concerns: the View, the Model, and the Controller. Separating concerns makes it easier to manage applications as they become more complex.</p>
+<p>By creating these components, we are separating the work flow into three well-known concerns: the View, the Model, 
+and the Controller. Separating concerns makes it easier to manage applications as they become more complex.</p>
 
-<p>Let’s look at an example model class, Action, server page, and mapping. If you like, fire up your Java IDE, and enter the code as we go.</p>
+<p>Let’s look at an example model class, Action, server page, and mapping. If you like, fire up your Java IDE, and enter 
+the code as we go.</p>
 
 <blockquote>
-  <p>This tutorial assumes you’ve completed the <a href="how-to-create-a-struts2-web-application.html">How To Create A Struts 2 Web Application</a> tutorial and have a working basic Struts project. The example code for this tutorial, helloworld, is available for checkout from the Struts 2 GitHub repository at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>. The example projects use Maven to manage the artifact dependencies and to build th [...]
+  <p>This tutorial assumes you’ve completed the <a href="how-to-create-a-struts2-web-application.html">How To Create A Struts 2 Web Application</a> 
+tutorial and have a working basic Struts project. The example code for this tutorial, helloworld, is available for checkout 
+from the Struts 2 GitHub repository at <a href="https://github.com/apache/struts-examples">struts-examples</a>. The example projects 
+use Maven to manage the artifact dependencies and to build the .war files.</p>
 </blockquote>
 
 <h2 id="the-code">The Code</h2>
@@ -162,7 +183,9 @@
 </ul>
 
 <blockquote>
-  <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting this application to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+  <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are 
+having a problem getting this application to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 </blockquote>
 
 <h3 id="step-1---create-the-model-class-messagestorejava">Step 1 - Create The Model Class MessageStore.java</h3>
@@ -191,11 +214,15 @@
 </code></pre>
 </div>
 
-<p>Note the use of the public getter method to allow access to the private message String attribute. The Struts 2 framework requires that objects you want to expose to the view (<code class="highlighter-rouge">HelloWorld.jsp</code>) follow the <a href="http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions">JavaBean-style conventions</a>.</p>
+<p>Note the use of the public getter method to allow access to the private message String attribute. The Struts 2 framework 
+requires that objects you want to expose to the view (<code class="highlighter-rouge">HelloWorld.jsp</code>) follow the <a href="http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions">JavaBean-style conventions</a>.</p>
 
 <h3 id="step-2---create-the-action-class-helloworldactionjava">Step 2 - Create The Action Class HelloWorldAction.java</h3>
 
-<p>We need an Action class to act as the Controller. The Action class responds to a user action (in this example that action will be clicking an HTML hyperlink and sending a specific URL to the Servlet container). One or more of the Action class’s methods are executed and a String result is returned. Based on the value of the result, a specific view page (in this example that view page is <code class="highlighter-rouge">HelloWorld.jsp</code>) is rendered.</p>
+<p>We need an Action class to act as the Controller. The Action class responds to a user action (in this example that action 
+will be clicking an HTML hyperlink and sending a specific URL to the Servlet container). One or more of the Action class’s 
+methods are executed and a String result is returned. Based on the value of the result, a specific view page (in this 
+example that view page is <code class="highlighter-rouge">HelloWorld.jsp</code>) is rendered.</p>
 
 <p>Note the package and import statements below.</p>
 
@@ -223,15 +250,19 @@
 </code></pre>
 </div>
 
-<p>The Struts 2 framework will create an object of the <code class="highlighter-rouge">HelloWorldAction</code> class and call the execute method in response to a user’s action (clicking on a hyperlink that sends a specific URL to the Servlet container).</p>
+<p>The Struts 2 framework will create an object of the <code class="highlighter-rouge">HelloWorldAction</code> class and call the execute method in response to 
+a user’s action (clicking on a hyperlink that sends a specific URL to the Servlet container).</p>
 
 <p>In this example, the execute method creates an object of class <code class="highlighter-rouge">MessageStore</code> and then returns the String constant <code class="highlighter-rouge">SUCCESS</code>.</p>
 
-<p>Note also the public getter method for the private <code class="highlighter-rouge">MessageStore</code> object. Since we want to make the <code class="highlighter-rouge">MessageStore</code> object available to the view page, <code class="highlighter-rouge">HelloWorld.jsp</code>, we need to follow the <a href="http://en.wikipedia.org/wiki/JavaBean\#JavaBean_conventions">JavaBean-style</a> of providing getter and setter methods where needed.</p>
+<p>Note also the public getter method for the private <code class="highlighter-rouge">MessageStore</code> object. Since we want to make the <code class="highlighter-rouge">MessageStore</code> object 
+available to the view page, <code class="highlighter-rouge">HelloWorld.jsp</code>, we need to follow the <a href="http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions">JavaBean-style</a> 
+of providing getter and setter methods where needed.</p>
 
 <h3 id="step-3---create-the-view-helloworldjsp">Step 3 - Create The View HelloWorld.jsp</h3>
 
-<p>We need a server page to present the message that is stored in the model class <code class="highlighter-rouge">MessageStore</code>. Create the below JSP in the <code class="highlighter-rouge">src/main/webapp</code> folder.</p>
+<p>We need a server page to present the message that is stored in the model class <code class="highlighter-rouge">MessageStore</code>. Create the below JSP in 
+the <code class="highlighter-rouge">src/main/webapp</code> folder.</p>
 
 <p><strong>HelloWorld.jsp</strong></p>
 
@@ -249,17 +280,25 @@
 &lt;/html&gt;
 </code></pre>
 
-<p>The taglib directive tells the Servlet container that this page will be using the Struts 2 tags and that these tags will be preceded by an <code class="highlighter-rouge">s</code>.</p>
+<p>The taglib directive tells the Servlet container that this page will be using the Struts 2 tags and that these tags will 
+be preceded by an <code class="highlighter-rouge">s</code>.</p>
 
-<p>The <code class="highlighter-rouge">&lt;s:property&gt;</code> tag displays the value returned by calling the method <code class="highlighter-rouge">getMessageStore</code> of the <code class="highlighter-rouge">HelloWorldAction</code> controller class. That method returns a <code class="highlighter-rouge">MessageStore</code> object. By adding the <code class="highlighter-rouge">.message</code> onto the messageStore part of the value attribute we are telling the Struts 2 framework to ca [...]
+<p>The <code class="highlighter-rouge">&lt;s:property&gt;</code> tag displays the value returned by calling the method <code class="highlighter-rouge">getMessageStore</code> of the <code class="highlighter-rouge">HelloWorldAction</code> 
+controller class. That method returns a <code class="highlighter-rouge">MessageStore</code> object. By adding the <code class="highlighter-rouge">.message</code> onto the messageStore part of 
+the value attribute we are telling the Struts 2 framework to call the <code class="highlighter-rouge">getMessage</code> method of that <code class="highlighter-rouge">MessageStore</code> object. 
+The <code class="highlighter-rouge">getMessage</code> method of class <code class="highlighter-rouge">MessageStore</code> returns a String. It is that String that will be displayed by the <code class="highlighter-rouge">&lt;s:property&gt;</code> tag.</p>
 
 <p>We’ll learn more about tags in the next tutorial. See the <em>Struts Tags</em>  for more information about tags.</p>
 
 <h3 id="step-4---add-the-struts-configuration-in-strutsxml">Step 4 - Add The Struts Configuration In struts.xml</h3>
 
-<p>We need a mapping to tie the URL, the <code class="highlighter-rouge">HelloWorldAction</code> class (controller), and the <code class="highlighter-rouge">HelloWorld.jsp</code> (the view) together. The mapping tells the Struts 2 framework which class will respond to the user’s action (the URL), which method of that class will be executed, and what view to render based on the String result that method returns.</p>
+<p>We need a mapping to tie the URL, the <code class="highlighter-rouge">HelloWorldAction</code> class (controller), and the <code class="highlighter-rouge">HelloWorld.jsp</code> (the view) together. 
+The mapping tells the Struts 2 framework which class will respond to the user’s action (the URL), which method of that 
+class will be executed, and what view to render based on the String result that method returns.</p>
 
-<p>Edit the <code class="highlighter-rouge">struts.xml</code> file (in the Mvn project that file is in the src/main/resources folder) to add the action mapping. Place the action node (action name=”hello”) between the opening and closing package node, just after the action mapping with the name=”index”. Your complete <code class="highlighter-rouge">struts.xml</code> should look like:</p>
+<p>Edit the <code class="highlighter-rouge">struts.xml</code> file (in the Mvn project that file is in the src/main/resources folder) to add the action mapping. 
+Place the action node (action <code class="highlighter-rouge">name="hello"</code>) between the opening and closing package node, just after the action mapping 
+with the <code class="highlighter-rouge">name="index"</code>. Your complete <code class="highlighter-rouge">struts.xml</code> should look like:</p>
 
 <p><strong>struts.xml</strong></p>
 
@@ -285,9 +324,11 @@
 
 <h3 id="step-5---create-the-url-action">Step 5 - Create The URL Action</h3>
 
-<p>Let’s add an Action URL inside <code class="highlighter-rouge">index.jsp</code> (see <code class="highlighter-rouge">src/main/webapp</code> folder) so the user can click on a link to tell the Struts 2 framework to run the execute method of the <code class="highlighter-rouge">HelloWorldAction</code> class and render the <code class="highlighter-rouge">HelloWorld.jsp</code> view.</p>
+<p>Let’s add an Action URL inside <code class="highlighter-rouge">index.jsp</code> (see <code class="highlighter-rouge">src/main/webapp</code> folder) so the user can click on a link to tell the Struts 2 
+framework to run the execute method of the <code class="highlighter-rouge">HelloWorldAction</code> class and render the <code class="highlighter-rouge">HelloWorld.jsp</code> view.</p>
 
-<p>First add the taglib directive at the top of the jsp <code class="highlighter-rouge">&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;</code>. Next add this p tag <code class="highlighter-rouge">&lt;p&gt;&lt;a href="&lt;s:url action='hello'/&gt;"&gt;Hello World&lt;/a&gt;&lt;/p&gt;</code> after the h1 tag. Your new index.jsp should look like:</p>
+<p>First add the taglib directive at the top of the jsp <code class="highlighter-rouge">&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;</code>. Next add this <code class="highlighter-rouge">p</code> tag 
+<code class="highlighter-rouge">&lt;p&gt;&lt;a href="&lt;s:url action='hello'/&gt;"&gt;Hello World&lt;/a&gt;&lt;/p&gt;</code> after the h1 tag. Your new index.jsp should look like:</p>
 
 <p><strong>index.jsp</strong></p>
 
@@ -306,13 +347,17 @@
 &lt;/html&gt;
 </code></pre>
 
-<p>The Struts url tag creates the URL with an action of hello. The hello action was mapped to the <code class="highlighter-rouge">HelloWorldAction</code> class and its <code class="highlighter-rouge">execute</code> method. When the user clicks on the above URL it will cause the Struts 2 framework to run the execute method of the <code class="highlighter-rouge">HelloWorldAction</code> class. After that method returns the String <code class="highlighter-rouge">success</code> (constant <cod [...]
+<p>The Struts url tag creates the URL with an action of hello. The hello action was mapped to the <code class="highlighter-rouge">HelloWorldAction</code> class 
+and its <code class="highlighter-rouge">execute</code> method. When the user clicks on the above URL it will cause the Struts 2 framework to run the execute 
+method of the <code class="highlighter-rouge">HelloWorldAction</code> class. After that method returns the String <code class="highlighter-rouge">success</code> (constant <code class="highlighter-rouge">SUCCESS</code>), the view 
+page <code class="highlighter-rouge">HelloWorld.jsp</code> will be rendered.</p>
 
 <h3 id="step-6---build-the-war-file-and-run-the-application">Step 6 - Build the WAR File and Run The Application</h3>
 
 <p>Execute <code class="highlighter-rouge">mvn jetty:run</code> to run the application.</p>
 
-<p>Go to this URL <a href="http://localhost:8080/helloworld/index.action">http://localhost:8080/helloworld/index.action</a> where you should see the following:</p>
+<p>Go to this URL <a href="http://localhost:8080/helloworld/index.action">http://localhost:8080/helloworld/index.action</a> where you 
+should see the following:</p>
 
 <p><img src="attachments/helloworld_index_action.png" alt="helloworld_index_action.png" /></p>
 
@@ -325,28 +370,29 @@
 <p>Your browser sends to the web server a request for the URL <a href="http://localhost:8080/helloworld/hello.action">http://localhost:8080/helloworld/hello.action</a>.</p>
 
 <ol>
-  <li>
-    <p>The container receives from the web server a request for the resource <code class="highlighter-rouge">hello.action</code>. According to the settings loaded from the <a href="//struts.apache.org/docs/webxml.html">web.xml</a> , the container finds that all requests are being routed to <code class="highlighter-rouge">org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</code>, including the <code class="highlighter-rouge">*.action</code> requests. The StrutsPrepareAndEx [...]
-  </li>
-  <li>
-    <p>The framework looks for an action mapping named “hello”, and it finds that this mapping corresponds to the class “HelloWorldAction”. The framework instantiates the Action and calls the Action’s <code class="highlighter-rouge">execute</code> method.</p>
-  </li>
-  <li>
-    <p>The <code class="highlighter-rouge">execute</code> method creates the MessageStore object and returns <code class="highlighter-rouge">SUCCESS</code> (=<code class="highlighter-rouge">"success"</code>). The framework checks the action mapping to see what page to load if <code class="highlighter-rouge">SUCCESS</code> is returned. The framework tells the container to render as the response to the request, the resource <code class="highlighter-rouge">HelloWorld.jsp</code>.</p>
-  </li>
-  <li>
-    <p>As the page <code class="highlighter-rouge">HelloWorld.jsp</code> is being processed, the <code class="highlighter-rouge">&lt;s:property value="messageStore.message" /&gt;</code> tag calls the getter <code class="highlighter-rouge">getMessageStore</code> of the <code class="highlighter-rouge">HelloWorld</code> Action and then calls the <code class="highlighter-rouge">getMessage</code> of the MessageStore object returned by <code class="highlighter-rouge">getMessageStore</code>. Th [...]
-  </li>
-  <li>
-    <p>A pure HTML response is sent back to the browser.</p>
-  </li>
+  <li>The container receives from the web server a request for the resource <code class="highlighter-rouge">hello.action</code>. According to the settings loaded f
+  rom the <a href="../core-developers/web-xml.html">web.xml</a>, the container finds that all requests are being routed to 
+  <code class="highlighter-rouge">org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</code>, including the <code class="highlighter-rouge">*.action</code> requests. 
+  The <code class="highlighter-rouge">StrutsPrepareAndExecuteFilter</code> is the entry point into the framework.</li>
+  <li>The framework looks for an action mapping named “hello”, and it finds that this mapping corresponds to the class 
+  <code class="highlighter-rouge">HelloWorldAction</code>. The framework instantiates the Action and calls the Action’s <code class="highlighter-rouge">execute</code> method.</li>
+  <li>The <code class="highlighter-rouge">execute</code> method creates the MessageStore object and returns <code class="highlighter-rouge">SUCCESS</code> (=<code class="highlighter-rouge">"success"</code>). The framework checks 
+  the action mapping to see what page to load if <code class="highlighter-rouge">SUCCESS</code> is returned. The framework tells the container to render 
+  as the response to the request, the resource <code class="highlighter-rouge">HelloWorld.jsp</code>.</li>
+  <li>As the page <code class="highlighter-rouge">HelloWorld.jsp</code> is being processed, the <code class="highlighter-rouge">&lt;s:property value="messageStore.message" /&gt;</code> tag calls the getter 
+  <code class="highlighter-rouge">getMessageStore</code> of the <code class="highlighter-rouge">HelloWorld</code> Action and then calls the <code class="highlighter-rouge">getMessage</code> of the MessageStore object returned 
+  by <code class="highlighter-rouge">getMessageStore</code>. The tag merges the value of the message attribute into the response.</li>
+  <li>A pure HTML response is sent back to the browser.</li>
 </ol>
 
 <h2 id="what-to-remember">What to Remember</h2>
 
-<p>The framework uses Actions to process HTML forms and other requests. The <code class="highlighter-rouge">Action</code> class returns a result-name such as <code class="highlighter-rouge">SUCCESS</code>, <code class="highlighter-rouge">ERROR</code> or <code class="highlighter-rouge">INPUT</code>. Based on the mappings loaded from the <code class="highlighter-rouge">struts.xml</code>, a given result-name may select a page (as in this example), another action, or some other web resource  [...]
+<p>The framework uses Actions to process HTML forms and other requests. The <code class="highlighter-rouge">Action</code> class returns a result-name such 
+as <code class="highlighter-rouge">SUCCESS</code>, <code class="highlighter-rouge">ERROR</code> or <code class="highlighter-rouge">INPUT</code>. Based on the mappings loaded from the <code class="highlighter-rouge">struts.xml</code>, a given result-name may select 
+a page (as in this example), another action, or some other web resource (image, PDF).</p>
 
-<p>When a server page is rendered, most often it will include dynamic data provided by the Action. To make it easy to display dynamic data, the framework provides a set of tags that can be used along with HTML markup to create a server page.</p>
+<p>When a server page is rendered, most often it will include dynamic data provided by the Action. To make it easy to display 
+dynamic data, the framework provides a set of tags that can be used along with HTML markup to create a server page.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/how-to-create-a-struts2-web-application.html b/content/getting-started/how-to-create-a-struts2-web-application.html
index 135e2c3..70aaed6 100644
--- a/content/getting-started/how-to-create-a-struts2-web-application.html
+++ b/content/getting-started/how-to-create-a-struts2-web-application.html
@@ -119,36 +119,54 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/how-to-create-a-struts2-web-application.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="how-to-create-a-struts-2-web-application">How To Create A Struts 2 Web Application</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="how-to-create-a-struts-2-web-application">How To Create A Struts 2 Web Application</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#java-requirements" id="markdown-toc-java-requirements">Java Requirements</a></li>
+  <li><a href="#our-first-application" id="markdown-toc-our-first-application">Our First Application</a></li>
+  <li><a href="#create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application" id="markdown-toc-create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application">Create Struts 2 Web Application Using Maven To Manage Artifacts and To Build The Application</a>    <ul>
+      <li><a href="#step-1---create-a-java-web-application" id="markdown-toc-step-1---create-a-java-web-application">Step 1 - Create A Java Web Application</a>        <ul>
+          <li><a href="#to-run-the-application-using-maven-add-the-jetty-maven-plugin-to-your-pomxml" id="markdown-toc-to-run-the-application-using-maven-add-the-jetty-maven-plugin-to-your-pomxml">to run the application using maven, add the jetty maven-plugin to your pom.xml</a></li>
+        </ul>
+      </li>
+      <li><a href="#step-2---add-indexjsp" id="markdown-toc-step-2---add-indexjsp">Step 2 - Add index.jsp</a></li>
+      <li><a href="#step-3---add-struts-2-jar-files-to-class-path" id="markdown-toc-step-3---add-struts-2-jar-files-to-class-path">Step 3 - Add Struts 2 Jar Files To Class Path</a></li>
+      <li><a href="#step-4---add-logging" id="markdown-toc-step-4---add-logging">Step 4 - Add Logging</a></li>
+      <li><a href="#step-5---add-struts-2-servlet-filter" id="markdown-toc-step-5---add-struts-2-servlet-filter">Step 5 - Add Struts 2 Servlet Filter</a></li>
+      <li><a href="#step-6---create-strutsxml" id="markdown-toc-step-6---create-strutsxml">Step 6 - Create struts.xml</a></li>
+      <li><a href="#step-7---build-and-run-the-application" id="markdown-toc-step-7---build-and-run-the-application">Step 7 - Build and Run the Application</a></li>
+    </ul>
+  </li>
+  <li><a href="#getting-help" id="markdown-toc-getting-help">Getting Help</a></li>
+</ul>
 
 <p>This tutorial walks through installing the framework and creating a simple application.</p>
 
-<div class="alert alert-block alert-error">
+<p>While the Struts 2 framework is simple to use, creating non-trivial applications assumes a working knowledge 
+of many J2EE technologies, including:</p>
 
-While the Struts 2 framework is simple to use, creating non-trivial applications assumes a working knowledge 
-of many J2EE technologies, including:
+<ul>
+  <li>Java</li>
+  <li>Filters, JSP, and Tag Libraries</li>
+  <li>JavaBeans</li>
+  <li>HTML and HTTP</li>
+  <li>Web Containers (such as Tomcat)</li>
+  <li>XML</li>
+</ul>
 
-  <ul>
-    <li>Java</li>
-    <li>Filters, JSP, and Tag Libraries</li>
-    <li>JavaBeans</li>
-    <li>HTML and HTTP</li>
-    <li>Web Containers (such as Tomcat)</li>
-    <li>XML</li>
-  </ul> 
-
-</div>
-
-<p><i class="glyphicon glyphicon-info-sign alert-info" aria-hidden="true"></i> For more about supporting technologies, 
-see the <a href="/primer.html">Key Technologies Primer</a>.</p>
+<blockquote>
+  <p>For more about supporting technologies, see the <a href="../primer.html">Key Technologies Primer</a>.</p>
+</blockquote>
 
-<h3 id="java-requirements">Java Requirements</h3>
+<h2 id="java-requirements">Java Requirements</h2>
 
 <p>Struts 2 requires Servlet API 2.4 or higher, JSP 2.0 or higher, and Java 7 or higher.</p>
 
-<h3 id="our-first-application">Our First Application</h3>
+<h2 id="our-first-application">Our First Application</h2>
 
 <p>To get started using Struts 2 we will create a web application using Maven to manage the artifact dependencies.
 You can checkout all the example applications from the Struts 2 GitHub repository 
diff --git a/content/getting-started/http-session.html b/content/getting-started/http-session.html
index c8d6c27..1435c42 100644
--- a/content/getting-started/http-session.html
+++ b/content/getting-started/http-session.html
@@ -119,8 +119,10 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/http-session.md" title="Edit this page on GitHub">Edit on GitHub</a>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
     <h1 class="no_toc" id="http-session">HTTP Session</h1>
 
 <ul id="markdown-toc">
@@ -132,7 +134,7 @@
   <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
 </ul>
 
-<p>The example code for this tutorial, http_session, is available at [https://github.com/apache/struts-examples].</p>
+<p>The example code for this tutorial, <strong>http-session</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
 <h2 id="introduction">Introduction</h2>
 
diff --git a/content/getting-started/introducing-interceptors.html b/content/getting-started/introducing-interceptors.html
index 734b0bf..7d3df1b 100644
--- a/content/getting-started/introducing-interceptors.html
+++ b/content/getting-started/introducing-interceptors.html
@@ -119,63 +119,76 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/introducing-interceptors.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="introducing-interceptors">Introducing Interceptors</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="introducing-interceptors">Introducing Interceptors</h1>
 
-<p>The example code for this tutorial, interceptors, is available at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#introducing-interceptors-1" id="markdown-toc-introducing-interceptors-1">Introducing Interceptors</a></li>
+  <li><a href="#run-the-example" id="markdown-toc-run-the-example">Run The Example</a></li>
+  <li><a href="#create-your-own-interceptor" id="markdown-toc-create-your-own-interceptor">Create Your Own Interceptor</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>interceptors</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
 
-<p>So far our tutorials have not delved into the inner workings of the Struts 2 framework. But in this tutorial we’ll introduce a key set of classes the Struts 2 framework relies upon to do most of the work whenever an Action is executed. In this tutorial’s example project there is a register link that is mapped in the Struts XML configuration file (struts.xml) to the execute method of class Register. Before that execute method is called much work is done behind the scenes by the Struts  [...]
+<h2 id="introduction">Introduction</h2>
+
+<p>So far our tutorials have not delved into the inner workings of the Struts 2 framework. But in this tutorial we’ll 
+introduce a key set of classes the Struts 2 framework relies upon to do most of the work whenever an Action is executed. 
+In this tutorial’s example project there is a register link that is mapped in the Struts XML configuration file (<code class="highlighter-rouge">struts.xml</code>) 
+to the execute method of class Register. Before that execute method is called much work is done behind the scenes 
+by the Struts 2 framework. For example:</p>
 
 <ol>
-  <li>
-    <p>Handling any exceptions generated</p>
-  </li>
-  <li>
-    <p>Converting the String request parameters to the Register class’s instance fields where the name values match</p>
-  </li>
-  <li>
-    <p>Calling the validate method and/or the external XML validation</p>
-  </li>
+  <li>Handling any exceptions generated</li>
+  <li>Converting the String request parameters to the Register class’s instance fields where the name values match</li>
+  <li>Calling the validate method and/or the external XML validation</li>
 </ol>
 
 <p>After the execute method is completed more work must be done</p>
 
 <ol>
-  <li>
-    <p>Handling any exceptions generated</p>
-  </li>
-  <li>
-    <p>Converting the <code class="highlighter-rouge">Register</code> class’s instance fields to String values for display in the view page</p>
-  </li>
-  <li>
-    <p>Forwarding to the correct view page depending on the result String returned by the execute method</p>
-  </li>
+  <li>Handling any exceptions generated</li>
+  <li>Converting the <code class="highlighter-rouge">Register</code> class’s instance fields to String values for display in the view page</li>
+  <li>Forwarding to the correct view page depending on the result String returned by the execute method</li>
 </ol>
 
 <p>The above list of tasks are not complete - several other tasks are done before and after the execution of the Action.</p>
 
-<p>The benefit of using Struts 2 is all this work happens automatically. You can focus on the logic of the controller (the Struts 2 ActionSupport class), the Service layer, the data access layer, your domain models, etc.</p>
+<p>The benefit of using Struts 2 is all this work happens automatically. You can focus on the logic of the controller 
+(the Struts 2 ActionSupport class), the Service layer, the data access layer, your domain models, etc.</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are 
+having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find 
+an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Introducing Interceptors</strong></p>
+<h2 id="introducing-interceptors-1">Introducing Interceptors</h2>
 
-<p>The tasks that are done by the Struts 2 framework before and after an Action is executed are done by Struts 2 interceptors. Interceptors are standard Java classes included in the Struts 2 core jar which are executed in a specific order.</p>
+<p>The tasks that are done by the Struts 2 framework before and after an Action is executed are done by Struts 2 interceptors. 
+Interceptors are standard Java classes included in the Struts 2 core jar which are executed in a specific order.</p>
 
-<p>In our example application there is a package node in struts.xml. The package node has an attribute of extends with a value of “struts-default.” The value “struts-default” identifies to the framework the specific stack of interceptors that will be executed before and after the Actions in that package.</p>
+<p>In our example application there is a package node in struts.xml. The package node has an attribute of extends with 
+a value of “struts-default.” The value “struts-default” identifies to the framework the specific stack of interceptors 
+that will be executed before and after the Actions in that package.</p>
 
-<p>If you want to learn more about the inner workings of interceptors, what interceptors belong to the struts default stack, and what are all the interceptors included with Struts 2, visit <a href="//struts.apache.org/docs/interceptors.html">Understanding Interceptors</a> .</p>
+<p>If you want to learn more about the inner workings of interceptors, what interceptors belong to the struts default stack, 
+and what are all the interceptors included with Struts 2, visit <a href="../core-developers/interceptors.html">Understanding Interceptors</a> .</p>
 
-<p>Sometime the Struts 2 default stack of interceptors are not exactly what you need for a particular action. You may want to use interceptors that are not part of the Struts 2 default stack. For an individual Action or for the entire package of Actions, you can specify a different stack of interceptors that the Action or package should use. Below is how you would specify that the register Action should use both the <a href="//struts.apache.org/docs/logger-interceptor.html">logger</a> an [...]
+<p>Sometime the Struts 2 default stack of interceptors are not exactly what you need for a particular action. You may want 
+to use interceptors that are not part of the Struts 2 default stack. For an individual Action or for the entire 
+package of Actions, you can specify a different stack of interceptors that the Action or package should use. Below is 
+how you would specify that the register Action should use both the <a href="../core-developers/logging-interceptor.html">logging</a> 
+and <a href="../core-developers/timer-interceptor.html">timer</a> interceptors in addition to the interceptors provided by the default stack.</p>
 
 <p><strong>Specify Specific Interceptors For An Action</strong></p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"register"</span> <span class="na">class=</span><span class="s">"org.apache.struts.register.action.Register"</span> <span class="na">method=</span><span class="s">"execute"</span><span class="nt">&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"timer"</span> <span class="nt">/&gt;</span>
-    <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"logger"</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"logging"</span> <span class="nt">/&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"defaultStack"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"exception.logEnabled"</span><span class="nt">&gt;</span>true<span class="nt">&lt;/param&gt;</span>
         <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"exception.logLevel"</span><span class="nt">&gt;</span>ERROR<span class="nt">&lt;/param&gt;</span>
@@ -186,19 +199,31 @@
 </code></pre>
 </div>
 
-<p>The logger interceptor logs the start and end of the execution of an Action. The timer interceptor logs the amount of time (in milliseconds) for execution of the Action. These two interceptors used together can provide developers useful feedback.</p>
+<p>The logger interceptor logs the start and end of the execution of an Action. The timer interceptor logs the amount 
+of time (in milliseconds) for execution of the Action. These two interceptors used together can provide developers 
+useful feedback.</p>
 
-<p>In the code example above note the three interceptor-ref nodes. Each one has a value for the name attribute. For the register Action we are instructing the framework to use the timer, logger, and defaultStack interceptors. The defaultStack are all the interceptors normally executed for an Action.</p>
+<p>In the code example above note the three interceptor-ref nodes. Each one has a value for the name attribute. For the register 
+Action we are instructing the framework to use the <code class="highlighter-rouge">timer</code>, <code class="highlighter-rouge">logging</code>, and <code class="highlighter-rouge">defaultStack</code> interceptors. The <code class="highlighter-rouge">defaultStack</code> 
+are all the interceptors normally executed for an Action.</p>
 
-<p>How did I know to use the value of timer for the name attribute and even that there is a timer interceptor? On the <a href="//struts.apache.org/docs/interceptors.html">Interceptors</a> web page in the Struts 2 documentation are a list of interceptors that come with the Struts 2 framework and what the name value is for each interceptor.</p>
+<p>How did I know to use the value of timer for the name attribute and even that there is a timer interceptor? 
+On the <a href="../core-developers/interceptors.html">Interceptors</a> web page in the Struts 2 documentation are a list of interceptors 
+that come with the Struts 2 framework and what the name value is for each interceptor.</p>
 
-<p>How did I know that the timer interceptor isn’t part of the defaultStack of interceptors already? Again on the Interceptors documentation web page is a list of which interceptors belong to the defaultStack.</p>
+<p>How did I know that the timer interceptor isn’t part of the defaultStack of interceptors already? Again on the Interceptors 
+documentation web page is a list of which interceptors belong to the <code class="highlighter-rouge">defaultStack</code>.</p>
 
-<p>Note the param nodes. These nodes are used to provide a value to the setLogEnabled and setLogLevel methods of the <a href="//struts.apache.org/docs/exception-interceptor.html">Exception Interceptor</a> . Providing the values of true and ERROR will cause the Struts 2 framework to log any exceptions not caught by the application’s code and to log those exceptions at the ERROR level.</p>
+<p>Note the param nodes. These nodes are used to provide a value to the setLogEnabled and setLogLevel methods 
+of the <a href="../core-developers/exception-interceptor.html">Exception Interceptor</a>. Providing the values of true and ERROR 
+will cause the Struts 2 framework to log any exceptions not caught by the application’s code and to log those exceptions 
+at the ERROR level.</p>
 
-<p><strong>Run The Example</strong></p>
+<h2 id="run-the-example">Run The Example</h2>
 
-<p>In the example application follow the README instructions to build, deploy, and run the application. View the output sent to the JVM console to see the log messages generated by the logger and timer interceptors. You should see log messages similar to the following:</p>
+<p>In the example application follow the README instructions to build, deploy, and run the application. View the output 
+sent to the JVM console to see the log messages generated by the logger and timer interceptors. You should see log messages 
+similar to the following:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>INFO: Starting execution stack for action //register
 Nov 20, 2010 9:55:48 AM com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
@@ -208,7 +233,8 @@ INFO: Executed action /register!execute took 177 ms.
 </code></pre>
 </div>
 
-<p>If you wanted to have the logger and timer interceptors executed for all Actions in a package you would use the following in <code class="highlighter-rouge">struts.xml</code>:</p>
+<p>If you wanted to have the logger and timer interceptors executed for all Actions in a package you would use 
+the following in <code class="highlighter-rouge">struts.xml</code>:</p>
 
 <p><strong>Specify Specific Interceptors For A Package</strong></p>
 
@@ -216,7 +242,7 @@ INFO: Executed action /register!execute took 177 ms.
     <span class="nt">&lt;interceptors&gt;</span> 
         <span class="nt">&lt;interceptor-stack</span> <span class="na">name=</span><span class="s">"appDefault"</span><span class="nt">&gt;</span> 
             <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"timer"</span> <span class="nt">/&gt;</span> 
-            <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"logger"</span> <span class="nt">/&gt;</span> 
+            <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"logging"</span> <span class="nt">/&gt;</span> 
             <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"defaultStack"</span> <span class="nt">/&gt;</span> 
         <span class="nt">&lt;/interceptor-stack&gt;</span> 
     <span class="nt">&lt;/interceptors&gt;</span>          
@@ -229,17 +255,26 @@ INFO: Executed action /register!execute took 177 ms.
 </code></pre>
 </div>
 
-<p>In the code above we use the interceptors node to define a new stack of interceptors that includes the timer, logger, and defaultStack interceptors. We give this new interceptor stack a name of appDefault. Then we use the default-interceptor-ref node to specify that for all Actions defined inside this package node the appDefault stack of interceptors are to be used. Thus the timer and logger interceptor will be executed for each Action in this package.</p>
+<p>In the code above we use the interceptors node to define a new stack of interceptors that includes the <code class="highlighter-rouge">timer</code>, logging<code class="highlighter-rouge">, 
+and </code>defaultStack<code class="highlighter-rouge"> interceptors. We give this new interceptor stack a name of appDefault. Then we use the </code>default-interceptor-ref<code class="highlighter-rouge"> 
+node to specify that for all Actions defined inside this package node the </code>appDefault<code class="highlighter-rouge"> stack of interceptors are to be used. 
+Thus the </code>timer<code class="highlighter-rouge"> and </code>logging` interceptor will be executed for each Action in this package.</p>
 
-<p>Note that in both examples we are still executing all the other interceptors by including the defaultStack as one of the interceptor-ref nodes. When you specify what interceptors you want to use for an Action or a package then only those interceptors are executed. So if in the example we had left out the interceptor-ref for defaultStack only the logger and timer interceptors would have executed.</p>
+<p>Note that in both examples we are still executing all the other interceptors by including the defaultStack as one 
+of the <code class="highlighter-rouge">interceptor-ref</code> nodes. When you specify what interceptors you want to use for an Action or a package then only 
+those interceptors are executed. So if in the example we had left out the <code class="highlighter-rouge">interceptor-ref</code> for <code class="highlighter-rouge">defaultStack</code> only 
+the <code class="highlighter-rouge">logging</code> and <code class="highlighter-rouge">timer</code> interceptors would have executed.</p>
 
-<p><strong>Create Your Own Interceptor</strong></p>
+<h2 id="create-your-own-interceptor">Create Your Own Interceptor</h2>
 
-<p>In addition to specifying your own stack of interceptors, you can also write your own new interceptor and add it to the stack that is executed. The Struts <a href="//struts.apache.org/docs/writing-interceptors.html">Writing Interceptors</a> guide explains how to do this. For example, you could create your own interceptor to handle authentication and authorization.</p>
+<p>In addition to specifying your own stack of interceptors, you can also write your own new interceptor and add it to 
+the stack that is executed. The Struts <a href="../core-developers/writing-interceptors.html">Writing Interceptors</a> guide explains 
+how to do this. For example, you could create your own interceptor to handle authentication and authorization.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>Interceptors provide the Struts 2 framework with both power and flexibility. Developers may add additional interceptors (either ones provided by Struts 2 or ones they create) to the stack of interceptors executed when an Action class is called.</p>
+<p>Interceptors provide the Struts 2 framework with both power and flexibility. Developers may add additional interceptors 
+(either ones provided by Struts 2 or ones they create) to the stack of interceptors executed when an Action class is called.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/jasper-reports-tutorial.html b/content/getting-started/jasper-reports-tutorial.html
index 2c93fbc..2575daf 100644
--- a/content/getting-started/jasper-reports-tutorial.html
+++ b/content/getting-started/jasper-reports-tutorial.html
@@ -123,7 +123,18 @@
     
     <a href="index.html" title="back to Getting started"><< back to Getting started</a>
     
-    <h1 id="jasperreports-tutorial">JasperReports Tutorial</h1>
+    <h1 class="no_toc" id="jasperreports-tutorial">JasperReports Tutorial</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#our-person-class" id="markdown-toc-our-person-class">Our Person class</a></li>
+  <li><a href="#jasperreports-libraries" id="markdown-toc-jasperreports-libraries">JasperReports libraries</a></li>
+  <li><a href="#creating-the-action" id="markdown-toc-creating-the-action">Creating the Action</a></li>
+  <li><a href="#our-jasper-template" id="markdown-toc-our-jasper-template">Our Jasper template</a>    <ul>
+      <li><a href="#registering-the-action" id="markdown-toc-registering-the-action">Registering the Action</a></li>
+      <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
+    </ul>
+  </li>
+</ul>
 
 <p>The Struts 2 JasperReports plugin is a bridge from Struts 2 to JasperReports and does not include JasperReports itself, 
 which must be downloaded separately.</p>
diff --git a/content/getting-started/message-resource-files.html b/content/getting-started/message-resource-files.html
index c391db4..1cc20ef 100644
--- a/content/getting-started/message-resource-files.html
+++ b/content/getting-started/message-resource-files.html
@@ -119,27 +119,49 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/message-resource-files.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="message-resource-files">Message Resource Files</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="message-resource-files">Message Resource Files</h1>
 
-<p>This tutorial assumes you’ve completed the <a href="form-validation.html">Form Validation</a> tutorial and have a working form_validation project. The example code for this tutorial, message_resource, is available for checkout from the</p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#message-resource-property-files" id="markdown-toc-message-resource-property-files">Message Resource Property Files</a></li>
+  <li><a href="#struts-2-key-attribute" id="markdown-toc-struts-2-key-attribute">Struts 2 Key Attribute</a></li>
+  <li><a href="#struts-2-text-tag" id="markdown-toc-struts-2-text-tag">Struts 2 Text Tag</a></li>
+  <li><a href="#package-level-properties" id="markdown-toc-package-level-properties">Package Level Properties</a></li>
+  <li><a href="#global-properties" id="markdown-toc-global-properties">Global Properties</a></li>
+  <li><a href="#internationalization-i18n" id="markdown-toc-internationalization-i18n">Internationalization (i18n)</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p>Struts 2 GitHub repository at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<p>This tutorial assumes you’ve completed the <a href="form-validation.html">Form Validation</a> tutorial and have a working 
+<strong>form-validation</strong> project. The example code for this tutorial, <strong>message-resource</strong>, is available for checkout from the 
+Struts 2 GitHub repository at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
-<p><strong>Introduction</strong></p>
+<h2 id="introduction">Introduction</h2>
 
-<p>In this tutorial we’ll explore using Struts 2 message resource capabilities (also called resource bundles). Message resources provide a simple way to put text in a view page that is the same through out your application, to create form field labels, and to change text to a specific language based on the user’s locale (i18n).</p>
+<p>In this tutorial we’ll explore using Struts 2 message resource capabilities (also called resource bundles). Message 
+resources provide a simple way to put text in a view page that is the same through out your application, to create form 
+field labels, and to change text to a specific language based on the user’s locale (i18n).</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p><strong>Message Resource Property Files</strong></p>
+<h2 id="message-resource-property-files">Message Resource Property Files</h2>
 
-<p>In a Struts 2 web application you may associate a message resource property file with each Struts 2 Action class by creating a properties file with the same name as the Action class and having the .properties extension. This properties file must go in the same package as the Action class. For our tutorial example, let’s say we want to place the form field labels into a separate file where we can easily change them and also provide the capability to display the labels in other languages.</p>
+<p>In a Struts 2 web application you may associate a message resource property file with each Struts 2 Action class by creating 
+a properties file with the same name as the Action class and having the .properties extension. This properties file must 
+go in the same package as the Action class. For our tutorial example, let’s say we want to place the form field labels 
+into a separate file where we can easily change them and also provide the capability to display the labels in other languages.</p>
 
-<p>If you’re doing this tutorial after completing <a href="form-validation.html">Form Validation</a> then you can make these changes to that tutorial’s example application.</p>
+<p>If you’re doing this tutorial after completing <a href="form-validation.html">Form Validation</a> then you can make these changes 
+to that tutorial’s example application.</p>
 
-<p>Put the text below in a file named Register.properties in the org.apache.struts.register.action package in the src/resources/java folder.</p>
+<p>Put the text below in a file named Register.properties in the org.apache.struts.register.action package 
+in the <code class="highlighter-rouge">src/resources/java</code> folder.</p>
 
 <p><strong>Register.properties</strong></p>
 
@@ -151,11 +173,15 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>The above is just a standard Java properties file. The key is to the left of the = sign and the value for the key is to the right. When the Register action is executed these properties will be available to the view page by referencing the key name.</p>
+<p>The above is just a standard Java properties file. The key is to the left of the = sign and the value for the key 
+is to the right. When the Register action is executed these properties will be available to the view page by referencing 
+the key name.</p>
 
-<p><strong>Struts 2 Key Attribute</strong></p>
+<h2 id="struts-2-key-attribute">Struts 2 Key Attribute</h2>
 
-<p>The Struts 2 key attribute can be used in the <a href="//struts.apache.org/docs/textfield.html">textfield</a> tag to instruct the framework what value to use for the textfield’s name and label attributes. Instead of providing those attributes and their values directly, you can just use the key attribute.</p>
+<p>The Struts 2 key attribute can be used in the <a href="../tag-developers/textfield-tag.html">textfield</a> tag to instruct 
+the framework what value to use for the textfield’s name and label attributes. Instead of providing those attributes 
+and their values directly, you can just use the key attribute.</p>
 
 <p>If you open register.jsp from the <a href="form-validation.html">Form Validation</a> tutorial you’ll see this Struts 2 textfield tag:</p>
 
@@ -173,9 +199,14 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>The value for the key attribute instructs the Struts 2 framework to use the same value for the name attribute (personBean.firstName). For the label attribute’s value the value of the key attribute is used by the Struts 2 framework to find a key in a properties file with the same value. So in our example, Struts 2 will look in Register.properties for a key with a value of personBean.firstName. The value of that key (First name) will be used as the label attribute’s value.</p>
+<p>The value for the key attribute instructs the Struts 2 framework to use the same value for the name attribute 
+(<code class="highlighter-rouge">personBean.firstName</code>). For the label attribute’s value the value of the key attribute is used by the Struts 2 framework 
+to find a key in a properties file with the same value. So in our example, Struts 2 will look in <code class="highlighter-rouge">Register.properties</code> 
+for a key with a value of <code class="highlighter-rouge">personBean.firstName</code>. The value of that key (<code class="highlighter-rouge">First name</code>) will be used as the label attribute’s value.</p>
 
-<p>To enable the key attribute to find the properties file, the display of the view page must be the result of executing a Struts 2 Action class. Right now if you examine index.jsp from the <a href="form-validation.html">Form Validation</a> tutorial the link to the register.jsp page is a standard URL.</p>
+<p>To enable the key attribute to find the properties file, the display of the view page must be the result of executing 
+a Struts 2 Action class. Right now if you examine index.jsp from the <a href="form-validation.html">Form Validation</a> tutorial 
+the link to the <code class="highlighter-rouge">register.jsp</code> page is a standard URL.</p>
 
 <p><strong>link to register.jsp</strong></p>
 
@@ -183,7 +214,8 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>We need to change the above link so that it goes through the Register.java Struts 2 Action class. Replace the above with this markup.</p>
+<p>We need to change the above link so that it goes through the Register.java Struts 2 Action class. Replace the above with 
+this markup.</p>
 
 <p><strong>link to Register Action class</strong></p>
 
@@ -192,7 +224,8 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>We use the Struts 2 url tag to create a link to action registerInput. We then use that link as the value for the href attribute of the anchor tag. We must define the registerInput action in struts.xml. Add the following to struts.xml.</p>
+<p>We use the Struts 2 url tag to create a link to action registerInput. We then use that link as the value for the <code class="highlighter-rouge">href</code> 
+attribute of the anchor tag. We must define the registerInput action in <code class="highlighter-rouge">struts.xml</code>. Add the following to <code class="highlighter-rouge">struts.xml</code></p>
 
 <p><strong>registerInput action node for struts.xml</strong></p>
 
@@ -202,21 +235,30 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>The above action node instructs the Struts 2 framework to execute class Register’s input method in response to action registerInput. The input method is inherited by class Register from class ActionSupport. The default behavior of the inherited input method is to return the String input. The result node above specifies that if the returned result is “input” then render the view register.jsp.</p>
+<p>The above action node instructs the Struts 2 framework to execute class Register’s input method in response to action 
+<code class="highlighter-rouge">registerInput</code>. The input method is inherited by class <code class="highlighter-rouge">Register</code> from class <code class="highlighter-rouge">ActionSupport</code>. The default behavior of 
+the inherited input method is to return the String input. The result node above specifies that if the returned result 
+is <code class="highlighter-rouge">input</code> then render the view <code class="highlighter-rouge">register.jsp</code>.</p>
 
-<p>By doing the above the view page register.jsp will have access to the properties defined in <code class="highlighter-rouge">Register.properties</code>. The Struts 2 framework will make those properties defined in <code class="highlighter-rouge">Register.properties</code> available to the view page since the view page was rendered after Register.java (the Struts 2 Action class) was executed.</p>
+<p>By doing the above the view page <code class="highlighter-rouge">register.jsp</code> will have access to the properties defined in <code class="highlighter-rouge">Register.properties</code>. 
+The Struts 2 framework will make those properties defined in <code class="highlighter-rouge">Register.properties</code> available to the view page since 
+the view page was rendered after <code class="highlighter-rouge">Register.java</code> (the Struts 2 Action class) was executed.</p>
 
-<p>Follow the instructions (README.txt) in the project to create the war file and copy the war file to your servlet container. Open a web browser and navigate to the home page specified in the README.txt file (index.action). You should see a link to registerInput.action when mousing over the hyperlink Please Register.</p>
+<p>Follow the instructions (README.txt) in the project to create the war file and copy the war file to your servlet container. 
+Open a web browser and navigate to the home page specified in the README.txt file (<code class="highlighter-rouge">index.action</code>). You should see a link 
+to <code class="highlighter-rouge">registerInput.action</code> when mousing over the hyperlink <code class="highlighter-rouge">Please Register</code>.</p>
 
 <p><img src="attachments/att14975007_registerInput.png" alt="registerInput.png" /></p>
 
-<p>When you click on the Please Register link your browser should display the register.jsp. The form field labels should be the key values from the <code class="highlighter-rouge">Register.properties</code> file.</p>
+<p>When you click on the Please Register link your browser should display the <code class="highlighter-rouge">register.jsp</code>. The form field labels should 
+be the key values from the <code class="highlighter-rouge">Register.properties</code> file.</p>
 
 <p><img src="attachments/att14975006_register.png" alt="register.png" /></p>
 
-<p><strong>Struts 2 Text Tag</strong></p>
+<h2 id="struts-2-text-tag">Struts 2 Text Tag</h2>
 
-<p>We can also use the Struts 2 text tag to display values from a properties file. In thankyou.jsp add this text tag instead of the h3 tag that is in thankyou.jsp.</p>
+<p>We can also use the Struts 2 text tag to display values from a properties file. In <code class="highlighter-rouge">thankyou.jsp</code> add this <code class="highlighter-rouge">text</code> tag 
+instead of the <code class="highlighter-rouge">h3</code> tag that is in <code class="highlighter-rouge">thankyou.jsp</code>.</p>
 
 <p><strong>text tag</strong></p>
 
@@ -224,11 +266,13 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>Since thankyou.jsp is also rendered after executing the Register.java Action class, the key thankyou and its value will be available to the view page.</p>
+<p>Since <code class="highlighter-rouge">thankyou.jsp</code> is also rendered after executing the <code class="highlighter-rouge">Register.java</code> Action class, the key <code class="highlighter-rouge">thankyou</code> and its value 
+will be available to the view page.</p>
 
 <p><img src="attachments/att14975009_thankyou.png" alt="thankyou.png" /></p>
 
-<p>How did the value entered for the first name input field get displayed on thankyou.jsp? Look back at the value for the thankyou key in the Register.properties file.</p>
+<p>How did the value entered for the first name input field get displayed on <code class="highlighter-rouge">thankyou.jsp</code>? Look back at the value 
+for the <code class="highlighter-rouge">thankyou</code> key in the <code class="highlighter-rouge">Register.properties</code> file.</p>
 
 <p><strong>Register.properties</strong></p>
 
@@ -236,13 +280,17 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>The markup <code class="highlighter-rouge">%{personBean.firstName}</code> tells Struts 2 to replace this part with the result of calling getPersonBean, which returns a Person object. Then call the getFirstName method which returns a String (the value the user inputted into the personBean.firstName form field on register.jsp).</p>
+<p>The markup <code class="highlighter-rouge">%{personBean.firstName}</code> tells Struts 2 to replace this part with the result of calling <code class="highlighter-rouge">getPersonBean</code>, 
+which returns a <code class="highlighter-rouge">Person</code> object. Then call the <code class="highlighter-rouge">getFirstName</code> method which returns a String (the value the user inputted 
+into the <code class="highlighter-rouge">personBean.firstName</code> form field on <code class="highlighter-rouge">register.jsp</code>).</p>
 
-<p><strong>Package Level Properties</strong></p>
+<h2 id="package-level-properties">Package Level Properties</h2>
 
-<p>What if you want a properties file with keys and values that can be referenced from multiple view pages and those view pages are rendered after executing different Action classes? Struts 2 has the ability to use multiple property files provided the property file is found in the package hierarchy.</p>
+<p>What if you want a properties file with keys and values that can be referenced from multiple view pages and those view 
+pages are rendered after executing different Action classes? Struts 2 has the ability to use multiple property files 
+provided the property file is found in the package hierarchy.</p>
 
-<p>Place the following in a file named package.properties and save that file in package org.apache.struts in src/main/resources.</p>
+<p>Place the following in a file named <code class="highlighter-rouge">package.properties</code> and save that file in package <code class="highlighter-rouge">org.apache.struts in src/main/resources</code>.</p>
 
 <p><strong>package.properties</strong></p>
 
@@ -250,7 +298,9 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>Now any view rendered by an Action that is in the hierarchy org.apache.struts… can use a Struts 2 text tag with a name attribute value of “greeting” to display the value of the greeting property key. For example add the following markup to helloworld.jsp before the h2 tag.</p>
+<p>Now any view rendered by an Action that is in the hierarchy <code class="highlighter-rouge">org.apache.struts...</code> can use a Struts 2 <code class="highlighter-rouge">text</code> tag with 
+a <code class="highlighter-rouge">name</code> attribute value of <code class="highlighter-rouge">greeting</code> to display the value of the <code class="highlighter-rouge">greeting</code> property key. For example add the following 
+markup to <code class="highlighter-rouge">helloworld.jsp</code> before the <code class="highlighter-rouge">h2</code> tag.</p>
 
 <p><strong>Using properties set in package.properties</strong></p>
 
@@ -258,15 +308,18 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>Then rebuild the war file and deploy it to your servlet container. Go to index.action and click on the link for Hello World. You should see:</p>
+<p>Then rebuild the war file and deploy it to your servlet container. Go to index.action and click on the link for Hello World. 
+You should see:</p>
 
 <p><img src="attachments/att14975005_hellogreeting.png" alt="hellogreeting.png" /></p>
 
-<p>The property keys and values defined in package.properties are available to any view that is rendered after executing an Action class that is the package hierarchy that includes package.properties.</p>
+<p>The property keys and values defined in package.properties are available to any view that is rendered after executing 
+an Action class that is the package hierarchy that includes <code class="highlighter-rouge">package.properties</code>.</p>
 
-<p><strong>Global Properties</strong></p>
+<h2 id="global-properties">Global Properties</h2>
 
-<p>You can also specify a global property file in <code class="highlighter-rouge">struts.xml</code>. The keys and values defined in that property file will be available to all the view pages that are rendered after executing an Action class.</p>
+<p>You can also specify a global property file in <code class="highlighter-rouge">struts.xml</code>. The keys and values defined in that property file will be 
+available to all the view pages that are rendered after executing an Action class.</p>
 
 <p>Add the following to a file named <code class="highlighter-rouge">global.properties</code> (note the name doesn’t have to be global).</p>
 
@@ -276,9 +329,10 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>Save the global.properties file in the src/main/resources folder.</p>
+<p>Save the <code class="highlighter-rouge">global.properties</code> file in the <code class="highlighter-rouge">src/main/resources</code> folder.</p>
 
-<p>To inform the Struts 2 framework about the global.properties file add the follow node to struts.xml after the constant name=”struts.devmode” node.</p>
+<p>To inform the Struts 2 framework about the <code class="highlighter-rouge">global.properties</code> file add the follow node to <code class="highlighter-rouge">struts.xml</code> after the constant 
+<code class="highlighter-rouge">name="struts.devmode"</code> node.</p>
 
 <p><strong>Specify Global Property File In struts.xml</strong></p>
 
@@ -286,7 +340,7 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>To use the contact key in a view page, add the following markup to index.jsp just before the closing body tag.</p>
+<p>To use the contact key in a view page, add the following markup to <code class="highlighter-rouge">index.jsp</code> just before the closing body tag.</p>
 
 <p><strong>Using contact property</strong></p>
 
@@ -295,19 +349,26 @@ thankyou=Thank you for registering %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>Rebuild the war file, deploy it to your Servlet container, and then go to index.action. You should see:</p>
+<p>Rebuild the war file, deploy it to your Servlet container, and then go to <code class="highlighter-rouge">index.action</code>. You should see:</p>
 
 <p><img src="attachments/att14975004_contact.png" alt="contact.png" /></p>
 
-<p>Struts 2 will look for a property key of contact in all the property files starting with the property file that matches the Action class, then in the property files that are in the package hierarchy of the Action class, and then in any property files specified in struts.xml. For this example Struts 2 will find the contact key in global.properties. The value of the contact key will be displayed where we have put the text tag.</p>
+<p>Struts 2 will look for a property key of contact in all the property files starting with the property file that matches 
+the Action class, then in the property files that are in the package hierarchy of the Action class, and then in any property 
+files specified in <code class="highlighter-rouge">struts.xml</code>. For this example Struts 2 will find the contact key in <code class="highlighter-rouge">global.properties</code>. The value 
+of the contact key will be displayed where we have put the text tag.</p>
 
 <p>You can add the text tag above to all the JSPs in this example.</p>
 
-<p><strong>Internationalization (i18n)</strong></p>
+<h2 id="internationalization-i18n">Internationalization (i18n)</h2>
 
-<p>Using message resource files (resource bundles) also enables you to provide text in different languages. By default, Struts 2 will use the user’s default locale. If that locale is en for English then the property files used will be the ones without a locale specification (for example <code class="highlighter-rouge">Register.properties</code>). If the locale is not English but say Spanish (es) then Struts 2 will look for a properties file named <code class="highlighter-rouge">Register_ [...]
+<p>Using message resource files (resource bundles) also enables you to provide text in different languages. By default, 
+Struts 2 will use the user’s default locale. If that locale is en for English then the property files used will be 
+the ones without a locale specification (for example <code class="highlighter-rouge">Register.properties</code>). If the locale is not English but 
+say Spanish (es) then Struts 2 will look for a properties file named <code class="highlighter-rouge">Register_es.properties</code>.</p>
 
-<p>To provide an example of Struts 2 support for i18n create a file named <code class="highlighter-rouge">Register_es.properties</code> and in that file add the following Spanish translations.</p>
+<p>To provide an example of Struts 2 support for i18n create a file named <code class="highlighter-rouge">Register_es.properties</code> and in that file add 
+the following Spanish translations.</p>
 
 <p><strong>Register_es.properties</strong></p>
 
@@ -319,17 +380,14 @@ thankyou=Gracias por registrarse, %{personBean.firstName}.
 </code></pre>
 </div>
 
-<table>
-  <tbody>
-    <tr>
-      <td>My apologies to Spanish language speakers for any mistakes in the Spanish translations.</td>
-    </tr>
-  </tbody>
-</table>
+<blockquote>
+  <p>My apologies to Spanish language speakers for any mistakes in the Spanish translations.</p>
+</blockquote>
 
 <p>Save the <code class="highlighter-rouge">Register_es.properties</code> file in the same package as <code class="highlighter-rouge">Register.properties</code>.</p>
 
-<p>In our example application, we need to tell Struts 2 to use a locale value of es (since we’re not in a Spanish locale) instead of the default locale value of our location (which is en). Add the following markup to index.jsp.</p>
+<p>In our example application, we need to tell Struts 2 to use a locale value of es (since we’re not in a Spanish locale) 
+instead of the default locale value of our location (which is en). Add the following markup to index.jsp.</p>
 
 <p><strong>Specify The Locale As a URL Parameter</strong></p>
 
@@ -341,17 +399,25 @@ thankyou=Gracias por registrarse, %{personBean.firstName}.
 </code></pre>
 </div>
 
-<p>In the above markup we’ve added a parameter named request_locale to the URL. The value of that parameter is es. The Action class that responds to this URL (Register.java) will see that the locale is es and will look for property files with _es (for example <code class="highlighter-rouge">Register_es.properties</code>). It will use those property files to find the values of the property keys referenced by the view page (e.g. personBean.firstName).</p>
+<p>In the above markup we’ve added a parameter named request_locale to the URL. The value of that parameter is <code class="highlighter-rouge">es</code>. 
+The Action class that responds to this URL (<code class="highlighter-rouge">Register.java</code>) will see that the locale is <code class="highlighter-rouge">es</code> and will look for property 
+files with <code class="highlighter-rouge">_es</code> (for example <code class="highlighter-rouge">Register_es.properties</code>). It will use those property files to find the values of the property 
+keys referenced by the view page (e.g. <code class="highlighter-rouge">personBean.firstName</code>).</p>
 
 <p>After clicking on the above link you should see the same form as before but with the form field labels in Spanish.</p>
 
 <p><img src="attachments/att14975008_spanishform.png" alt="spanishform.png" /></p>
 
-<p>If we implement the same concept by creating _es.properties versions of <code class="highlighter-rouge">global.properties</code> (<code class="highlighter-rouge">global_es.properties</code>) and <code class="highlighter-rouge">package.properties</code> (<code class="highlighter-rouge">package_es.properties</code>) then we can create a complete registration web page in Spanish. Download the finished example application for this tutorial from Google Code - <a href="http://code.google.co [...]
+<p>If we implement the same concept by creating _es.properties versions of <code class="highlighter-rouge">global.properties</code> (<code class="highlighter-rouge">global_es.properties</code>) 
+and <code class="highlighter-rouge">package.properties</code> (<code class="highlighter-rouge">package_es.properties</code>) then we can create a complete registration web page in Spanish. 
+Download the finished example application for this tutorial from Github - <a href="https://github.com/apache/struts-examples/tree/master/message-resource">message-resource</a> 
+to see those property files and run the complete example with the registration form in Spanish.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>We’ve covered how to use message resources (resource bundles) in Struts 2 and also introduced how Struts 2 enables internationalization (i18n) in this tutorial. To fully understand these concepts and learn more about Struts 2 consult the main Struts 2 documentation available at <a href="http://struts.apache.org">http://struts.apache.org</a>.</p>
+<p>We’ve covered how to use message resources (resource bundles) in Struts 2 and also introduced how Struts 2 enables 
+internationalization (i18n) in this tutorial. To fully understand these concepts and learn more about Struts 2 consult 
+the main Struts 2 documentation available at <a href="http://struts.apache.org">http://struts.apache.org</a>.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/preperable-interface.html b/content/getting-started/preperable-interface.html
index 8884ee3..9719c3e 100644
--- a/content/getting-started/preperable-interface.html
+++ b/content/getting-started/preperable-interface.html
@@ -119,31 +119,58 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/preperable-interface.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="preparable-interface">Preparable Interface</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="preparable-interface">Preparable Interface</h1>
 
-<p>The example code for this tutorial, preparable_interface, is available at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#preparable-interface-1" id="markdown-toc-preparable-interface-1">Preparable Interface</a></li>
+  <li><a href="#example-application" id="markdown-toc-example-application">Example Application</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>preparable-interface</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
-<p>Often the data used to populate a form control is dynamically generated, perhaps from a database. When the user submits the form, the Struts 2 validation interceptor attempts to validate the user’s form input. If validation fails the Struts 2 framework returns the value “input” but the “input” action is not re-executed. Rather the view associated with the “input” result is rendered to the user. Usually this view is the page that displayed the original form.</p>
+<h2 id="introduction">Introduction</h2>
 
-<p>This work-flow can cause a problem if one or more of the form fields or some other data displayed depends on a dynamic look-up that that is accomplished in the Action class’s input method. Since the Action class’s input method is not re-executed when validation fails, the view page may no longer have access to the correct information to create the form or other display information.</p>
+<p>Often the data used to populate a form control is dynamically generated, perhaps from a database. When the user submits 
+the form, the Struts 2 validation interceptor attempts to validate the user’s form input. If validation fails the Struts 2 
+framework returns the value <code class="highlighter-rouge">input</code> but the <code class="highlighter-rouge">input</code> action is not re-executed. Rather the view associated with the <code class="highlighter-rouge">input</code> 
+result is rendered to the user. Usually this view is the page that displayed the original form.</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>This work-flow can cause a problem if one or more of the form fields or some other data displayed depends on a dynamic 
+look-up that that is accomplished in the Action class’s input method. Since the Action class’s input method is not 
+re-executed when validation fails, the view page may no longer have access to the correct information to create the form 
+or other display information.</p>
 
-<p><strong>Preparable Interface</strong></p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p>Struts 2 provides the <a href="http://struts.apache.org/2.3.1/xwork-core/apidocs/com/opensymphony/xwork2/Preparable.html">Preparable interface</a>^[http://struts.apache.org/2.3.1/xwork-core/apidocs/com/opensymphony/xwork2/Preparable.html] to overcome this problem. An Action class that implements this interface must override the prepare method. The prepare method will always be called by the Struts 2 framework’s <a href="//struts.apache.org/docs/prepare-interceptor.html">prepare interc [...]
+<h2 id="preparable-interface-1">Preparable Interface</h2>
 
-<p>In the prepare method you should put any statements that must be executed no matter what other Action class method will be called and also statements that should be executed if validation fails. Usually statements in the prepare method set the value for Action class instance fields that will be used to populate form controls and get the values that will be used to set the initial form field values.</p>
+<p>Struts 2 provides the <a href="../maven/struts2-core/apidocs/com/opensymphony/xwork2/Preparable.html">Preparable interface</a>
+to overcome this problem. An Action class that implements this interface must override the prepare method. The <code class="highlighter-rouge">prepare</code> 
+method will always be called by the Struts 2 framework’s <a href="../core-developers/prepare-interceptor.html">prepare interceptor</a> 
+whenever any method is called for the Action class and also when validation fails before the view is rendered.</p>
 
-<p>In addition to automatically running the prepare method the <a href="//struts.apache.org/docs/prepare-interceptor.html">prepare interceptor</a> will also call a method named prepare[ActionMethodName]. For example, define a prepare method and a prepareInput method in the Action class that implements preparable. When the Struts 2 framework calls the input method, the prepare interceptor will call the prepareInput and the prepare methods before calling the input method.</p>
+<p>In the <code class="highlighter-rouge">prepare</code> method you should put any statements that must be executed no matter what other Action class method will 
+be called and also statements that should be executed if validation fails. Usually statements in the prepare method set 
+the value for Action class instance fields that will be used to populate form controls and get the values that will be 
+used to set the initial form field values.</p>
 
-<p><strong>Example Application</strong></p>
+<p>In addition to automatically running the prepare method the <a href="../core-developers/prepare-interceptor.html">prepare interceptor</a> 
+will also call a method named <code class="highlighter-rouge">prepare&lt;ActionMethodName&gt;</code>. For example, define a prepare method and a <code class="highlighter-rouge">prepareInput</code> method 
+in the Action class that implements <code class="highlighter-rouge">Preparable</code>. When the Struts 2 framework calls the input method, the prepare interceptor 
+will call the prepareInput and the prepare methods before calling the input method.</p>
 
-<p>If you examine class EditAction in the example application (see above) you’ll see that it implements the Preparable Interface. In the prepare method is this code:</p>
+<h2 id="example-application">Example Application</h2>
+
+<p>If you examine class EditAction in the example application (see above) you’ll see that it implements the <code class="highlighter-rouge">Preparable</code> interface. 
+In the prepare method is this code:</p>
 
 <p><strong>EditAction.java prepare Method</strong></p>
 
@@ -153,13 +180,17 @@
 </code></pre>
 </div>
 
-<p>The above statements get the car model values used to populate the car model check boxes displayed in the form and also get the information about the Person object being edited.</p>
+<p>The above statements get the car model values used to populate the car model check boxes displayed in the form and also 
+get the information about the Person object being edited.</p>
 
-<p>When you run the example application, look in the log to see when the prepare method is called in relation to the input and execute methods. Running the example application and examining the log should help you understand the impact of implementing the Preparable Interface and the prepare method.</p>
+<p>When you run the example application, look in the log to see when the prepare method is called in relation to the input 
+and execute methods. Running the example application and examining the log should help you understand the impact of implementing 
+the <code class="highlighter-rouge">Preparable</code> interface and the prepare method.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>When your application requires specific statements to be executed no matter which method of the Action class is called or when validation fails, you should implement the Preparable interface and override the prepare method.</p>
+<p>When your application requires specific statements to be executed no matter which method of the Action class is called 
+or when validation fails, you should implement the Preparable interface and override the prepare method.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/processing-forms.html b/content/getting-started/processing-forms.html
index 49d363b..18d875c 100644
--- a/content/getting-started/processing-forms.html
+++ b/content/getting-started/processing-forms.html
@@ -119,13 +119,25 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/processing-forms.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="processing-forms">Processing Forms</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="processing-forms">Processing Forms</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#forms-and-a-java-model-class" id="markdown-toc-forms-and-a-java-model-class">Forms and a Java model class</a></li>
+  <li><a href="#form-structure" id="markdown-toc-form-structure">Form structure</a></li>
+  <li><a href="#creating-the-action-class-to-handle-the-form-submission" id="markdown-toc-creating-the-action-class-to-handle-the-form-submission">Creating the Action class to handle the form submission</a></li>
+  <li><a href="#adding-the-view-for-the-result" id="markdown-toc-adding-the-view-for-the-result">Adding the view for the result</a></li>
+  <li><a href="#create-action-mapping-in-strutsxml" id="markdown-toc-create-action-mapping-in-strutsxml">Create action mapping in struts.xml</a></li>
+  <li><a href="#create-a-link-to-registerjsp" id="markdown-toc-create-a-link-to-registerjsp">Create a link to register.jsp</a></li>
+</ul>
 
 <p>This tutorial assumes you’ve completed the <a href="coding-actions.html">Coding Struts 2 Actions</a> tutorial and have a working 
-coding-actions project. The example code for this tutorial, form-processing, is available for checkout from 
-the Struts 2 GitHub subversion repository: <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>.</p>
+<strong>coding-actions</strong> project. The example code for this tutorial, <strong>form-processing</strong>, is available for checkout from 
+the Struts 2 GitHub repository <a href="https://github.com/apache/struts-examples">struts-examples</a>.</p>
 
 <h2 id="introduction">Introduction</h2>
 
diff --git a/content/getting-started/spring.html b/content/getting-started/spring.html
index e46d9f2..3a50eb4 100644
--- a/content/getting-started/spring.html
+++ b/content/getting-started/spring.html
@@ -119,30 +119,41 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/spring.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="spring-and-struts-2">Spring and Struts 2</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="spring-and-struts-2">Spring and Struts 2</h1>
 
-<p>The example code for this tutorial, spring_struts, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#struts-2-spring-plugin" id="markdown-toc-struts-2-spring-plugin">Struts 2 Spring Plugin</a></li>
+  <li><a href="#spring-configuration-file" id="markdown-toc-spring-configuration-file">Spring Configuration File</a></li>
+  <li><a href="#alternative---have-spring-manage-creation-of-actionsupport-class" id="markdown-toc-alternative---have-spring-manage-creation-of-actionsupport-class">Alternative - Have Spring Manage Creation Of ActionSupport Class</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>spring-struts</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
 
-<p>In the execute method of many Struts 2 ActionSupport classes are statements that create objects and then have those objects execute methods that perform needed tasks. Whenever one class creates an object of another class that introduces a dependency between the two classes. The Spring framework makes it easier for the application developer to manage these dependencies and helps make the application more flexible and maintainable. This tutorial will show you how to use Struts 2 and Spr [...]
+<h2 id="introduction">Introduction</h2>
+
+<p>In the execute method of many Struts 2 ActionSupport classes are statements that create objects and then have those 
+objects execute methods that perform needed tasks. Whenever one class creates an object of another class that introduces 
+a dependency between the two classes. The Spring framework makes it easier for the application developer to manage these 
+dependencies and helps make the application more flexible and maintainable. This tutorial will show you how to use Struts 2 
+and Spring together to manage the dependencies between your ActionSupport classes and other classes in your application.</p>
 
 <blockquote>
-  <p>This tutorial assumes you understand how to use the Spring framework to manage dependencies between classes. You can learn more about Spring by reading the documentation at <a href="http://www.springsource.org/documentation">http://www.springsource.org/documentation</a></p>
+  <p>This tutorial assumes you understand how to use the Spring framework to manage dependencies between classes. You can 
+learn more about Spring by reading the documentation at <a href="https://spring.io/docs">https://spring.io/docs</a></p>
 </blockquote>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<table>
-  <tbody>
-    <tr>
-    </tr>
-  </tbody>
-</table>
-
-<p>If you examine the example application for the <a href="#PAGE_23337450">Struts 2 Themes</a> tutorial you’ll see this code in the EditAction ActionSupport class</p>
+<p>If you examine the example application for the <a href="themes.html">Struts 2 Themes</a> tutorial you’ll see this code in the 
+<code class="highlighter-rouge">EditAction</code> class</p>
 
 <p><strong>EditAction Class Hard-Coded Dependency</strong></p>
 
@@ -150,18 +161,19 @@
 </code></pre>
 </div>
 
-<p>The above statement hard-codes a dependency between the <code class="highlighter-rouge">EditAction</code> class and the <code class="highlighter-rouge">EditServiceInMemory</code> class. This is poor design for two reasons.</p>
+<p>The above statement hard-codes a dependency between the <code class="highlighter-rouge">EditAction</code> class and the <code class="highlighter-rouge">EditServiceInMemory</code> class. This is 
+poor design for two reasons.</p>
 
 <ol>
-  <li>
-    <p>If I need to replace the <code class="highlighter-rouge">EditServiceInMemory</code> with another class that implements the <code class="highlighter-rouge">EditService</code> interface I’ll have to hunt down and replace all statements where I hard-coded the dependency.</p>
-  </li>
-  <li>
-    <p>I cannot test <code class="highlighter-rouge">EditAction</code> without using the <code class="highlighter-rouge">EditServiceInMemory</code> class. I cannot isolate <code class="highlighter-rouge">EditAction</code> by using a stub implementation of <code class="highlighter-rouge">EditService</code> when writing my test case because the use of <code class="highlighter-rouge">EditServiceInMemory</code> is hard-coded.</p>
-  </li>
+  <li>If I need to replace the <code class="highlighter-rouge">EditServiceInMemory</code> with another class that implements the <code class="highlighter-rouge">EditService</code> interface I’ll 
+  have to hunt down and replace all statements where I hard-coded the dependency.</li>
+  <li>I cannot test <code class="highlighter-rouge">EditAction</code> without using the <code class="highlighter-rouge">EditServiceInMemory</code> class. I cannot isolate <code class="highlighter-rouge">EditAction</code> by using 
+  a stub implementation of <code class="highlighter-rouge">EditService</code> when writing my test case because the use of <code class="highlighter-rouge">EditServiceInMemory</code> is hard-coded.</li>
 </ol>
 
-<p>Spring provides a mechanism to manage dependencies by injecting them at run time. Struts 2 ActionSupport classes—like any other Java class—can be injected with a dependent object by the Spring framework. So instead of having the above code, I would have this statement in <code class="highlighter-rouge">EditAction</code>.</p>
+<p>Spring provides a mechanism to manage dependencies by injecting them at run time. Struts 2 ActionSupport classes—like 
+any other Java class—can be injected with a dependent object by the Spring framework. So instead of having the above code, 
+I would have this statement in <code class="highlighter-rouge">EditAction</code>.</p>
 
 <p><strong>EditAction Class No Hard-Coded Dependency</strong></p>
 
@@ -171,21 +183,25 @@
 
 <p>At run time the Spring framework will provide an object of a class that implements the EditService interface.</p>
 
-<p><strong>Struts 2 Spring Plugin</strong></p>
+<h2 id="struts-2-spring-plugin">Struts 2 Spring Plugin</h2>
 
-<p>Struts 2 provides a plugin that enables Spring to inject into the ActionSupport classes any dependent objects you’ve specified in the Spring configuration file. Consult <a href="//struts.apache.org/docs/spring-plugin.html">Spring Plugin documentation</a> for more information about how the plugin works.</p>
+<p>Struts 2 provides a plugin that enables Spring to inject into the ActionSupport classes any dependent objects you’ve 
+specified in the Spring configuration file. Consult <a href="../plugins/spring/">Spring Plugin documentation</a> for more information 
+about how the plugin works.</p>
 
-<p>For a Maven application you’ll need to add a dependency to the struts2-spring-plugin jar (see the Maven example application for this tutorial). The plugin’s pom.xml includes transitive dependencies to the Spring jar files.</p>
+<p>For a Maven application you’ll need to add a dependency to the struts2-spring-plugin jar (see the Maven example application 
+for this tutorial). The plugin’s pom.xml includes transitive dependencies to the Spring jar files.</p>
 
-<table>
-  <tbody>
-    <tr>
-      <td>The current version (<code class="highlighter-rouge">2.5.10.1</code>) of the Struts 2 Spring plugin has transitive dependencies to the Spring <code class="highlighter-rouge">4.1.6.RELEASE</code> version. If you want to use the latest version of Spring, then you should exclude the transitive dependencies in your pom.xml for the Struts 2 Spring plugin and then declare dependency nodes to the current version of the Spring jar files. If you are using Ant and explicitly including th [...]
-    </tr>
-  </tbody>
-</table>
+<blockquote>
+  <p>The current version (<code class="highlighter-rouge">2.5.10.1</code>) of the Struts 2 Spring plugin has transitive dependencies to the Spring <code class="highlighter-rouge">4.1.6.RELEASE</code> version. 
+If you want to use the latest version of Spring, then you should exclude the transitive dependencies in your pom.xml 
+for the Struts 2 Spring plugin and then declare dependency nodes to the current version of the Spring jar files. 
+If you are using Ant and explicitly including the jar files in your application, then just include the latest version 
+of the Spring jar files.</p>
+</blockquote>
 
-<p>In your <code class="highlighter-rouge">ActionSupport</code> class you must have a set method for the dependent object that follows standard Java bean naming conventions. If you examine the <code class="highlighter-rouge">EditAction</code> class for this tutorial’s application you’ll see this set method.</p>
+<p>In your <code class="highlighter-rouge">ActionSupport</code> class you must have a set method for the dependent object that follows standard Java bean naming 
+conventions. If you examine the <code class="highlighter-rouge">EditAction</code> class for this tutorial’s application you’ll see this set method.</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kt">void</span> <span class="nf">setEditService</span><span class="p">(</span><span class="n">EditService</span> <span class="n">editService</span><span class="o">)</span> <span class="o">{</span>
     <span class="k">this</span><span class="o">.</span><span class="na">editService</span> <span class="o">=</span> <span class="n">editService</span><span class="o">;</span>
@@ -205,11 +221,14 @@
 </code></pre>
 </div>
 
-<p>The above code will activate the Spring framework when the application is started up by the Servlet container. By default Spring will look for a configuration file name applicationContext.xml in WEB-INF (consult the Spring documentation for how you can change where Spring looks and what the configuration file name is).</p>
+<p>The above code will activate the Spring framework when the application is started up by the Servlet container. By default 
+Spring will look for a configuration file name applicationContext.xml in WEB-INF (consult the Spring documentation for 
+how you can change where Spring looks and what the configuration file name is).</p>
 
-<p><strong>Spring Configuration File</strong></p>
+<h2 id="spring-configuration-file">Spring Configuration File</h2>
 
-<p>In the Spring configuration file we create a bean node for those objects we want Spring to create an instance of and inject into our ActionSupport class. In the example application is this applicationContext.xml.</p>
+<p>In the Spring configuration file we create a bean node for those objects we want Spring to create an instance of and inject 
+into our ActionSupport class. In the example application is this <code class="highlighter-rouge">applicationContext.xml</code>.</p>
 
 <p><strong>Spring Configuration File</strong></p>
 
@@ -226,13 +245,20 @@
 </code></pre>
 </div>
 
-<p>Note the id value above. By default the Spring plugin works with Spring to autowire the dependencies of the ActionClass by “name.” Spring will create an object of class EditServiceMemory and provide that object to any ActionSupport class that has a setEditService method with an argument of type EditService. Consult the <a href="//struts.apache.org/docs/spring-plugin.html">Spring Plugin</a> documentation for how to change the default autowire method.</p>
+<p>Note the id value above. By default the Spring plugin works with Spring to autowire the dependencies of the ActionClass 
+by <code class="highlighter-rouge">name</code>. Spring will create an object of class EditServiceMemory and provide that object to any ActionSupport class 
+that has a setEditService method with an argument of type EditService. Consult the <a href="../plugins/spring/">Spring Plugin</a> 
+documentation for how to change the default autowire method.</p>
 
-<p>The editService bean created by Spring will have a scope of singleton since that is the default scope. Consult section 3.5 of the <a href="http://www.springsource.org/documentation">Spring documentation</a> for how to configure the bean definition to use a different scope (e.g. request or session).</p>
+<p>The editService bean created by Spring will have a scope of singleton since that is the default scope. Consult section 
+3.5 of the <a href="https://spring.io/docs">Spring documentation</a> for how to configure the bean definition to use a different 
+scope (e.g. request or session).</p>
 
-<p><strong>Alternative - Have Spring Manage Creation Of ActionSupport Class</strong></p>
+<h2 id="alternative---have-spring-manage-creation-of-actionsupport-class">Alternative - Have Spring Manage Creation Of ActionSupport Class</h2>
 
-<p>Using the above methodology, the Struts 2 framework will still manage the creation of the <code class="highlighter-rouge">ActionSupport</code> class. If you prefer you can configure the application so that Spring will create the ActionSupport class also. To support this technique you need to add a bean node to the Spring configuration file for the ActionSupport class.</p>
+<p>Using the above methodology, the Struts 2 framework will still manage the creation of the <code class="highlighter-rouge">ActionSupport</code> class. If you 
+prefer you can configure the application so that Spring will create the ActionSupport class also. To support this technique 
+you need to add a bean node to the Spring configuration file for the ActionSupport class.</p>
 
 <p><strong>Spring Configuration For ActionSupport Class Managed By Spring</strong></p>
 
@@ -253,9 +279,13 @@
 </code></pre>
 </div>
 
-<p>Note in the above that there is an <code class="highlighter-rouge">editAction</code> bean and its <code class="highlighter-rouge">editService</code> property is set to the <code class="highlighter-rouge">editService</code> bean. Since we are having Spring manage the <code class="highlighter-rouge">EditAction</code> class we must specify any properties of <code class="highlighter-rouge">EditAction</code> that we want Spring to inject. Please remember that actions must be created on eac [...]
+<p>Note in the above that there is an <code class="highlighter-rouge">editAction</code> bean and its <code class="highlighter-rouge">editService</code> property is set to the <code class="highlighter-rouge">editService</code> bean. 
+Since we are having Spring manage the <code class="highlighter-rouge">EditAction</code> class we must specify any properties of <code class="highlighter-rouge">EditAction</code> that we want Spring 
+to inject. Please remember that actions must be created on each request, they cannot be <code class="highlighter-rouge">singletons</code>- this is the default 
+<code class="highlighter-rouge">scope</code> that’s why it must be changed to <code class="highlighter-rouge">prototype</code>.</p>
 
-<p>In the <code class="highlighter-rouge">struts.xml</code> configuration file you must specify the Spring id value for the class attribute of the action node. This tells Struts to get a bean with that id value from Spring for the Action class.</p>
+<p>In the <code class="highlighter-rouge">struts.xml</code> configuration file you must specify the Spring id value for the class attribute of the action node. 
+This tells Struts to get a bean with that id value from Spring for the Action class.</p>
 
 <p><strong>Struts Configuration For Spring Managed ActionSupport Class</strong></p>
 
@@ -265,9 +295,11 @@
 </code></pre>
 </div>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>In this tutorial we reviewed how to use the Struts 2 Spring plugin to integrate Spring and Struts. By using the Struts 2 Spring plugin you can have Spring manage the dependencies of your ActionSupport classes. Of course you can also take advantage of the many other benefits (AOP, Spring JDBC) that the Spring framework provides.</p>
+<p>In this tutorial we reviewed how to use the Struts 2 Spring plugin to integrate Spring and Struts. By using the Struts 2 
+Spring plugin you can have Spring manage the dependencies of your ActionSupport classes. Of course you can also take 
+advantage of the many other benefits (AOP, Spring JDBC) that the Spring framework provides.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/themes.html b/content/getting-started/themes.html
index 4f3397f..f6e2296 100644
--- a/content/getting-started/themes.html
+++ b/content/getting-started/themes.html
@@ -119,17 +119,32 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/themes.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="themes">Themes</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="themes">Themes</h1>
 
-<p>The example code for this tutorial, themes, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#specifying-the-theme-struts-2-should-use" id="markdown-toc-specifying-the-theme-struts-2-should-use">Specifying The Theme Struts 2 Should Use</a></li>
+  <li><a href="#specifying-the-css-used-by-the-struts-2-tag" id="markdown-toc-specifying-the-css-used-by-the-struts-2-tag">Specifying The CSS Used By The Struts 2 Tag</a></li>
+  <li><a href="#creating-and-applying-your-own-themes-for-struts-2-tags" id="markdown-toc-creating-and-applying-your-own-themes-for-struts-2-tags">Creating And Applying Your Own Themes For Struts 2 Tags</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>themes</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
 
-<p>When you use a Struts 2 tag such as s:select in your web page, the Struts 2 framework generates HTML that styles the appearance and controls the layout of the select control. The style and layout is determined by which Struts 2 theme is set for the tag. Struts 2 comes with three built-in themes: simple, xhtml, and css_xhtml. If you don’t specify a theme, then Struts 2 will use the xhtml theme by default.</p>
+<h2 id="introduction">Introduction</h2>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>When you use a Struts 2 tag such as <code class="highlighter-rouge">s:select</code> in your web page, the Struts 2 framework generates HTML that styles 
+the appearance and controls the layout of the select control. The style and layout is determined by which Struts 2 theme 
+is set for the tag. Struts 2 comes with three built-in themes: <code class="highlighter-rouge">simple</code>, <code class="highlighter-rouge">xhtml</code>, and <code class="highlighter-rouge">css_xhtml</code>. If you don’t specify 
+a theme, then Struts 2 will use the <code class="highlighter-rouge">xhtml</code> theme by default.</p>
+
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
 <p>For example, this Struts 2 select tag:</p>
 
@@ -158,51 +173,53 @@
 </code></pre>
 </div>
 
-<p>Notice how the HTML generated uses table tags to control the layout of the label and select HTML. There is also a class, tdLabel, applied to the table column where the label tag is rendered. Since no theme was specified for the Struts 2 select tag the default xhmtl theme was used.</p>
+<p>Notice how the HTML generated uses table tags to control the layout of the label and select HTML. There is also a class, 
+<code class="highlighter-rouge">tdLabel</code>, applied to the table column where the label tag is rendered. Since no theme was specified for the Struts 2 s
+elect tag the default <code class="highlighter-rouge">xhmtl</code> theme was used.</p>
 
-<p><strong>Specifying The Theme Struts 2 Should Use</strong></p>
+<h2 id="specifying-the-theme-struts-2-should-use">Specifying The Theme Struts 2 Should Use</h2>
 
-<p>The Struts 2 tags have a theme attribute you can use to specify which Struts 2 theme should be used when creating the HTML for that tag. The values for the theme attribute are simple, xhtml, css_xhtml, and ajax. To learn more about these themes visit <a href="//struts.apache.org/docs/themes-and-templates.html">Themes and Templates Documentation</a> . This tutorial will review the xhtml, css_xhtml, and the simple themes. The ajax theme is a special theme used for ajax operations (see < [...]
+<p>The Struts 2 tags have a theme attribute you can use to specify which Struts 2 theme should be used when creating the HTML 
+for that tag. The values for the theme attribute are simple, xhtml, css_xhtml, and ajax. To learn more about these themes 
+visit <a href="../tag-developers/themes-and-templates.html">Themes and Templates Documentation</a>. This tutorial will review 
+the <code class="highlighter-rouge">xhtml</code>, <code class="highlighter-rouge">css_xhtml</code>, and the <code class="highlighter-rouge">simple</code> themes. The <code class="highlighter-rouge">ajax</code> theme is a special theme used for ajax operations 
+(see <a href="../tag-developers/ajax-theme.html">Ajax Theme in the documentation</a>).</p>
 
-<p>You can specify the theme on a per Struts 2 tag basis or you can use one of the following methods to specify what theme Struts 2 should use:</p>
+<p>You can specify the theme on a per Struts 2 tag basis or you can use one of the following methods to specify what theme 
+Struts 2 should use:</p>
 
 <ol>
-  <li>
-    <p>The theme attribute on the specific tag</p>
-  </li>
-  <li>
-    <p>The theme attribute on a tag’s surrounding form tag</p>
-  </li>
-  <li>
-    <p>The page-scoped attribute named “theme”</p>
-  </li>
-  <li>
-    <p>The request-scoped attribute named “theme”</p>
-  </li>
-  <li>
-    <p>The session-scoped attribute named “theme”</p>
-  </li>
-  <li>
-    <p>The application-scoped attribute named “theme”</p>
-  </li>
-  <li>
-    <p>The <code class="highlighter-rouge">struts.ui.theme</code> property in <code class="highlighter-rouge">struts.properties</code> (defaults to xhtml)</p>
-  </li>
+  <li>The <code class="highlighter-rouge">theme</code> attribute on the specific tag</li>
+  <li>The <code class="highlighter-rouge">theme</code> attribute on a tag’s surrounding form tag</li>
+  <li>The page-scoped attribute named <code class="highlighter-rouge">theme</code></li>
+  <li>The request-scoped attribute named <code class="highlighter-rouge">theme</code></li>
+  <li>The session-scoped attribute named <code class="highlighter-rouge">theme</code></li>
+  <li>The application-scoped attribute named <code class="highlighter-rouge">theme</code></li>
+  <li>The <code class="highlighter-rouge">struts.ui.theme</code> constant in <code class="highlighter-rouge">struts.xml</code> (defaults to <code class="highlighter-rouge">xhtml</code>)</li>
 </ol>
 
-<p>Consult <a href="//struts.apache.org/docs/selecting-themes.html">Selecting Themes</a> for how to set the theme using the above approaches.</p>
+<p>Consult <a href="../tag-developers/selecting-themes.html">Selecting Themes</a> for how to set the theme using the above approaches.</p>
 
-<p>In the example application, examine edit.jsp. The theme attribute of the form tag is set to xhtml. Run the application (see the readme.txt file) and view the source for edit.jsp after it is rendered in your browser. You should see the form HTML tags layout controlled by table tags.</p>
+<p>In the example application, examine <code class="highlighter-rouge">edit.jsp</code>. The theme attribute of the form tag is set to <code class="highlighter-rouge">xhtml</code>. Run the application 
+(see the readme.txt file) and view the source for edit.jsp after it is rendered in your browser. You should see the form 
+HTML tags layout controlled by table tags.</p>
 
-<p>Change the theme to simple for the form’s theme attribute and redeploy the application. Examine the source for edit.jsp after it is rendered in the browser. You should see that there are no table tags controlling the layout and also there are no label tags for the text fields.</p>
+<p>Change the theme to simple for the form’s theme attribute and redeploy the application. Examine the source for <code class="highlighter-rouge">edit.jsp</code>
+after it is rendered in the browser. You should see that there are no table tags controlling the layout and also there 
+are no label tags for the text fields.</p>
 
-<p>Change the theme to css_xhtml for the form’s theme attribute and redeploy the application. Examine the source for edit.jsp after it is rendered in the browser. The layout of the form tags is now controlled by div tags and the label tags are back.</p>
+<p>Change the theme to css_xhtml for the form’s theme attribute and redeploy the application. Examine the source for <code class="highlighter-rouge">edit.jsp</code>
+after it is rendered in the browser. The layout of the form tags is now controlled by div tags and the label tags are back.</p>
 
-<p><strong>Specifying The CSS Used By The Struts 2 Tag</strong></p>
+<h2 id="specifying-the-css-used-by-the-struts-2-tag">Specifying The CSS Used By The Struts 2 Tag</h2>
 
-<p>Change the theme attribute for the form tag back to xhtml. Notice when you view the source of edit.jsp after it is rendered in the browser that there is a class named tdLabel applied to the table column that contains the label. This CSS class controls the position of the label in the table column. The tdLabel style is defined in /themes/struts/xhtml/styles.css. The link to this style sheet was included in edit.jsp’s head section when you add the <code class="highlighter-rouge">s:head< [...]
+<p>Change the theme attribute for the form tag back to xhtml. Notice when you view the source of edit.jsp after it is rendered 
+in the browser that there is a class named tdLabel applied to the table column that contains the label. This CSS class 
+controls the position of the label in the table column. The tdLabel style is defined in <code class="highlighter-rouge">/themes/struts/xhtml/styles.css</code>.
+The link to this style sheet was included in edit.jsp’s head section when you add the <code class="highlighter-rouge">s:head</code> tag to <code class="highlighter-rouge">edit.jsp</code>.</p>
 
-<p>Load this style sheet in your browser (in the example application the link is <a href="http://localhost:8080/themes/struts/xhtml/styles.css">http://localhost:8080/themes/struts/xhtml/styles.css</a> if your Servlet container is running on localhost, port 8080). You’ll see the following:</p>
+<p>Load this style sheet in your browser (in the example application the link is <a href="http://localhost:8080/themes/struts/xhtml/styles.css">http://localhost:8080/themes/struts/xhtml/styles.css</a> 
+if your Servlet container is running on localhost, port 8080). You’ll see the following:</p>
 
 <p><strong>styles.css</strong></p>
 
@@ -216,9 +233,11 @@
 </code></pre>
 </div>
 
-<p>So the .label selector renders the label tag’s text in italic. The .tdLabel tag specifies that the text should align to the right and top of the table column.</p>
+<p>So the .label selector renders the label tag’s text in italic. The .tdLabel tag specifies that the text should align 
+to the right and top of the table column.</p>
 
-<p>You can override the above selectors by including the same selectors in your page’s head section. For example add the following to the head section of <code class="highlighter-rouge">edit.jsp</code>.</p>
+<p>You can override the above selectors by including the same selectors in your page’s head section. For example add 
+the following to the head section of <code class="highlighter-rouge">edit.jsp</code>.</p>
 
 <p><strong>Override Label Style</strong></p>
 
@@ -230,19 +249,31 @@
 
 <p>Now the label tag will render the text in blue, bold, normal (not italics) style.</p>
 
-<p><strong>Creating And Applying Your Own Themes For Struts 2 Tags</strong></p>
+<h2 id="creating-and-applying-your-own-themes-for-struts-2-tags">Creating And Applying Your Own Themes For Struts 2 Tags</h2>
 
-<p>The theme templates (simple, xhtml, css_xhtml) can be found in the Struts 2 core jar file. If you expand (extract the files) the Struts 2 core jar file you’ll find folders named template.css_xhtml, template.simple, and template.xhtml. Those folders contain the templates for the three default Struts 2 themes. In each folder is a file for each Struts 2 tag. For example if you expand the template.xhtml folder you’ll see the select.ftl file.</p>
+<p>The theme templates (simple, xhtml, css_xhtml) can be found in the Struts 2 core jar file. If you expand (extract the files) 
+the Struts 2 core jar file you’ll find folders named <code class="highlighter-rouge">template.css_xhtml</code>, <code class="highlighter-rouge">template.simple</code>, and <code class="highlighter-rouge">template.xhtml</code>. 
+Those folders contain the templates for the three default Struts 2 themes. In each folder is a file for each Struts 2 tag. 
+For example if you expand the <code class="highlighter-rouge">template.xhtml</code> folder you’ll see the <code class="highlighter-rouge">select.ftl</code> file.</p>
 
-<p>The Struts 2 framework uses the FreeMarker template engine to generate the HTML for the Struts 2 tags. That’s why the file extension is “.ftl”. You can learn more about FreeMarker by visiting <a href="http://freemarker.sourceforge.net/">http://freemarker.sourceforge.net/</a>.</p>
+<p>The Struts 2 framework uses the FreeMarker template engine to generate the HTML for the Struts 2 tags. That’s why the file 
+extension is <code class="highlighter-rouge">.ftl</code>. You can learn more about FreeMarker by visiting <a href="https://freemarker.apache.org/">https://freemarker.apache.org/</a>.</p>
 
-<p>Also in the template.xhmtl folder is the styles.css file. This is the styles.css file that your application will use if it uses the xhtml theme.</p>
+<p>Also in the <code class="highlighter-rouge">template.xhmtl</code> folder is the <code class="highlighter-rouge">styles.css</code> file. This is the <code class="highlighter-rouge">styles.css</code> file that your application will use 
+if it uses the <code class="highlighter-rouge">xhtml</code> theme.</p>
 
-<p>Let’s say we wanted to create our own theme that will change how the Struts 2 checkboxlist tag displays the checkboxes and their labels.</p>
+<p>Let’s say we wanted to create our own theme that will change how the Struts 2 checkboxlist tag displays the checkboxes 
+and their labels.</p>
 
-<p>In the example application I’ve extended the default XHMTL theme (see file <code class="highlighter-rouge">theme.properties</code> under src/main/resources/template/KUTheme).  The checkboxlist.ftl theme that is part of the XHTML theme only includes a space between each label and the next checkbox (see checkboxlist.ftl in the template/simple folder in Struts 2 core). That is why all the checkboxes are displayed across the width of the browser window. For my custom checkboxlist theme I  [...]
+<p>In the example application I’ve extended the default XHMTL theme (see file <code class="highlighter-rouge">theme.properties</code> under <code class="highlighter-rouge">src/main/resources/template/KUTheme</code>).
+The <code class="highlighter-rouge">checkboxlist.ftl</code> theme that is part of the XHTML theme only includes a space between each label and the next checkbox 
+(see <code class="highlighter-rouge">checkboxlist.ftl</code> in the <code class="highlighter-rouge">template/simple</code> folder in Struts 2 core). That is why all the checkboxes are displayed 
+across the width of the browser window. For my custom checkboxlist theme I want to have a break tag after each label tag 
+so that each checkbox and its label will be on their own line.</p>
 
-<p>In the example application there is a folder named src/main/resources/template/KUTheme. In that folder is a checkboxlist.ftl, the contents of which I originally copied from the checkboxlist.ftl that is in the templates.xhtml folder from the struts 2 core jar.</p>
+<p>In the example application there is a folder named <code class="highlighter-rouge">src/main/resources/template/KUTheme</code>. In that folder is a <code class="highlighter-rouge">checkboxlist.ftl</code>, 
+the contents of which I originally copied from the <code class="highlighter-rouge">checkboxlist.ftl</code> that is in the <code class="highlighter-rouge">templates.xhtml</code> folder from 
+the Struts 2 core jar.</p>
 
 <p>I then modified the <code class="highlighter-rouge">checkboxlist.ftl</code> in the KUTheme folder to be:</p>
 
@@ -257,21 +288,37 @@
 
 <p>Be sure to note the change to the second line—using KUTheme_simple in the path.</p>
 
-<p>Then in the example application I created a KUTheme_simple folder under <code class="highlighter-rouge">src/main/resources/template</code> (optionally you can place it under <code class="highlighter-rouge">webapp</code>, e.g. <code class="highlighter-rouge">src/main/webapp/template</code> ). In that folder I created checkboxlist.ftl and copied the contents from <code class="highlighter-rouge">template.simple</code> <code class="highlighter-rouge">checkboxlist.ftl</code> (again found i [...]
+<p>Then in the example application I created a KUTheme_simple folder under <code class="highlighter-rouge">src/main/resources/template</code> (optionally you 
+can place it under <code class="highlighter-rouge">webapp</code>, e.g. <code class="highlighter-rouge">src/main/webapp/template</code> ). In that folder I created <code class="highlighter-rouge">checkboxlist.ftl</code> and copied 
+the contents from <code class="highlighter-rouge">template.simple</code> <code class="highlighter-rouge">checkboxlist.ftl</code> (again found in the Struts 2 core jar). After copying the contents 
+to <code class="highlighter-rouge">checkboxlist.ftl</code> that is in <code class="highlighter-rouge">KUTheme_simple</code> folder, I modified <code class="highlighter-rouge">checkboxlist.ftl</code> so that the label tag has a style 
+of red bold text and I added a break tag after each label so that each check box and label will be on its own line.</p>
 
-<p>Since the XHTML theme is the default theme and I have a theme.properties file defined with parent = xhtml, the KUTheme will inherit all the themes from xhmtl exempt for the theme for the checkboxlist tag since my KUTheme includes a definition for that tag’s layout.  In the <code class="highlighter-rouge">struts.xml</code> file (src/main/resources) you will see that the I’ve specified the default theme to be KUTheme.</p>
+<p>Since the XHTML theme is the default theme and I have a <code class="highlighter-rouge">theme.properties</code> file defined with <code class="highlighter-rouge">parent = xhtml</code>, 
+the KUTheme will inherit all the themes from xhmtl exempt for the theme for the checkboxlist tag since my KUTheme includes 
+a definition for that tag’s layout. In the <code class="highlighter-rouge">struts.xml</code> file (<code class="highlighter-rouge">src/main/resources</code>) you will see that the I’ve specified 
+the default theme to be KUTheme.</p>
 
-<p>In the deployed web application, Struts 2 will first look for a tag’s template on the application’s class path and if it doesn’t find the template there it will use the default template that is part of the Struts 2 core jar. Since we’ve added a template folder to the application’s web root, now when Struts 2 creates the HTML to display the checkboxlist tag it will use the template that is in the KUTheme folder (which tells it to use the <code class="highlighter-rouge">checkboxlist.ftl [...]
+<p>In the deployed web application, Struts 2 will first look for a tag’s template on the application’s class path and if it 
+doesn’t find the template there it will use the default template that is part of the Struts 2 core jar. Since we’ve 
+added a template folder to the application’s web root, now when Struts 2 creates the HTML to display the checkboxlist 
+tag it will use the template that is in the KUTheme folder (which tells it to use the <code class="highlighter-rouge">checkboxlist.ftl</code> file that is 
+in the KUTheme_simple folder instead of the one in the <code class="highlighter-rouge">template.simple</code> folder that is part of the Struts 2 core Jar).</p>
 
 <p>After redeploying the application the check boxes for the Car Models Owned should appear like:</p>
 
 <p><img src="attachments/att23527657_Screen shot 2010-09-11 at 12.37.12 PM.png" alt="Screen shot 2010-09-11 at 12.37.12 PM.png" /></p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>You can easily override the default theme used by Struts 2 to control the appearance and layout of a Struts 2 tag. Each Struts 2 tag has an associated template file (e.g. <code class="highlighter-rouge">select.ftl</code>) that is in a folder named after the theme (e.g. xhtml). By default the Struts framework will look in the Struts 2 core Jar file for the theme folder and templates. However, if you include your own theme folder (e.g. KUTheme) under webapp/template (or WebContent/templ [...]
+<p>You can easily override the default theme used by Struts 2 to control the appearance and layout of a Struts 2 tag. Each 
+Struts 2 tag has an associated template file (e.g. <code class="highlighter-rouge">select.ftl</code>) that is in a folder named after the theme (e.g. xhtml). 
+By default the Struts framework will look in the Struts 2 core Jar file for the theme folder and templates. However, 
+if you include your own theme folder (e.g. KUTheme) under webapp/template (or WebContent/template in the Ant version) 
+and specify that folder name (e.g. KUTheme) as the value for the theme attribute, then the Struts 2 framework will look 
+in that theme folder for the tag’s template.</p>
 
-<p>To learn more about how to use the Struts 2 themes and how you can override them, visit <a href="//struts.apache.org/docs/themes-and-templates.html">Themes and Templates Documentation</a> .</p>
+<p>To learn more about how to use the Struts 2 themes and how you can override them, visit <a href="../tag-developers/themes-and-templates.html">Themes and Templates Documentation</a> .</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/unit-testing.html b/content/getting-started/unit-testing.html
index 5319faa..549bbca 100644
--- a/content/getting-started/unit-testing.html
+++ b/content/getting-started/unit-testing.html
@@ -119,31 +119,56 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/unit-testing.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="unit-testing">Unit Testing</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="unit-testing">Unit Testing</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#setup" id="markdown-toc-setup">Setup</a></li>
+  <li><a href="#writing-a-unit-test" id="markdown-toc-writing-a-unit-test">Writing A Unit Test</a></li>
+  <li><a href="#test-validation-should-pass" id="markdown-toc-test-validation-should-pass">Test Validation Should Pass</a></li>
+  <li><a href="#test-validation-should-fail" id="markdown-toc-test-validation-should-fail">Test Validation Should Fail</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p>The example code for this tutorial, unit_testing, is available at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<p>The example code for this tutorial, <strong>unit-testing</strong>, is available at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
 
-<p><strong>Introduction</strong></p>
+<h2 id="introduction">Introduction</h2>
 
-<p>Struts 2 supports running unit tests of methods in the Struts Action class with the <a href="//struts.apache.org/docs/junit-plugin.html">Struts 2 JUnit plugin</a>. The JUnit plugin allows you to test methods of an Action class from within the Struts 2 framework. The Struts Servlet filter and interceptors fire just as if your application was running on a Servlet container.</p>
+<p>Struts 2 supports running unit tests of methods in the Struts Action class with the <a href="../plugins/junit/">Struts 2 JUnit plugin</a>. 
+The JUnit plugin allows you to test methods of an Action class from within the Struts 2 framework. The Struts Servlet 
+-filter and interceptors fire just as if your application was running on a Servlet container.</p>
 
-<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
+<p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having 
+a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer 
+to your problem, post a question on the mailing list.</p>
 
-<p><strong>Setup</strong></p>
+<h2 id="setup">Setup</h2>
 
-<p>The Struts 2 JUnit plugin jar file must be on your application’s class path. In the example application (see info above) the pom.xml includes a dependency for the struts2-junit-plugin. There are numerous transitive dependencies, including to JUnit and the Spring framework.</p>
+<p>The Struts 2 JUnit plugin jar file must be on your application’s class path. In the example application (see info above) 
+the <code class="highlighter-rouge">pom.xml</code> includes a dependency for the <code class="highlighter-rouge">struts2-junit-plugin</code>. There are numerous transitive dependencies, including 
+to JUnit and the Spring framework.</p>
 
-<p><strong>Writing A Unit Test</strong></p>
+<h2 id="writing-a-unit-test">Writing A Unit Test</h2>
 
-<p>In the example application, the Register Action class includes using the validate method. This method is automatically executed by the Struts 2 framework prior to the execute method. Additionally, this method needs the values from the user’s input on the form to already have been provided to the instance fields of the Action class (this work is done by another Struts 2 interceptor). So it would be difficult to test the validate method without the overall Struts 2 framework running.</p>
+<p>In the example application, the Register Action class includes using the validate method. This method is automatically 
+executed by the Struts 2 framework prior to the execute method. Additionally, this method needs the values from the user’s 
+input on the form to already have been provided to the instance fields of the Action class (this work is done by another 
+Struts 2 interceptor). So it would be difficult to test the validate method without the overall Struts 2 framework running.</p>
 
-<p>To use the Struts 2 plugin to ensure the Strut 2 framework runs as part of the test, you need to have your JUnit test class extend StrutsTestCase (see RegisterTest class in the example application).</p>
+<p>To use the Struts 2 plugin to ensure the Strut 2 framework runs as part of the test, you need to have your JUnit test 
+class extend StrutsTestCase (see RegisterTest class in the example application).</p>
 
-<p>Note that the Struts 2 JUnit plugin can be used to design unit tests of other Action class methods such as the input method and also to test methods of a custom interceptor you add to the interceptor stack. Also in this example, the test is for validation performed in the <a href="form-validation.html">validate method</a> . But the same type of test would work if the validation was done using <a href="form-validation-using-xml.html">XML file validation</a>.</p>
+<p>Note that the Struts 2 JUnit plugin can be used to design unit tests of other Action class methods such as the input method 
+and also to test methods of a custom interceptor you add to the interceptor stack. Also in this example, the test is 
+for validation performed in the <a href="form-validation.html">validate method</a> . But the same type of test would work if the validation 
+was done using <a href="form-validation-using-xml.html">XML file validation</a>.</p>
 
-<p>To test the validate method we want Struts to call the Struts action that will cause the Action class’s validate and execute methods to be run. In the example application this action is register.</p>
+<p>To test the validate method we want Struts to call the Struts action that will cause the Action class’s validate and execute 
+methods to be run. In the example application this action is register.</p>
 
 <p><strong>struts.xml</strong></p>
 
@@ -154,15 +179,22 @@
 </code></pre>
 </div>
 
-<p>Remember the validate method will be called automatically by the framework before calling the execute method. If validation fails the Struts framework will return “input”. If there are no validation errors then the framework will call the execute method and return whatever String the execute method returns.</p>
+<p>Remember the validate method will be called automatically by the framework before calling the execute method. If validation 
+fails the Struts framework will return <code class="highlighter-rouge">input</code>. If there are no validation errors then the framework will call the execute 
+method and return whatever String the execute method returns.</p>
 
-<p><strong>Test Validation Should Pass</strong></p>
+<h2 id="test-validation-should-pass">Test Validation Should Pass</h2>
 
-<p>For our first test we’ll test that there should be no validation errors. In the normal flow of this application the user would first enter the form data shown on the register.jsp page.</p>
+<p>For our first test we’ll test that there should be no validation errors. In the normal flow of this application the user 
+would first enter the form data shown on the register.jsp page.</p>
 
 <p><img src="attachments/att28017281_Screen shot 2012-02-17 at 2.46.54 PM.png" alt="Screen shot 2012-02-17 at 2.46.54 PM.png" /></p>
 
-<p>The input fields for the form have the following name values: personBean.firstName, personBean.lastName, personBean.email, and personBean.age. When the user fills out those fields Struts will take the values and provide them to the appropriate set methods of the personBean object. So as part of the test I need to simulate the user filling out these form fields. The StrutsTestCase provides a request object (of type MockHttpServletRequest) that I can use to set these values in the reque [...]
+<p>The input fields for the form have the following name values: <code class="highlighter-rouge">personBean.firstName</code>, <code class="highlighter-rouge">personBean.lastName</code>, 
+<code class="highlighter-rouge">personBean.email</code>, and <code class="highlighter-rouge">personBean.age</code>. When the user fills out those fields Struts will take the values and provide 
+them to the appropriate set methods of the <code class="highlighter-rouge">personBean</code> object. So as part of the test I need to simulate the user filling 
+out these form fields. The StrutsTestCase provides a request object (of type <code class="highlighter-rouge">MockHttpServletRequest</code>) that I can use 
+to set these values in the request scope.</p>
 
 <p><strong>testExecuteValidationPasses method from RegisterTest class</strong></p>
 
@@ -185,21 +217,33 @@
 </code></pre>
 </div>
 
-<p>The first statements in the test method use the request object to set the values of any request parameters. These simulate the values the user would enter into the form fields. Note how the first argument to setParameter is the same as the value of the name attribute in the Struts textfield tag in the register.jsp page.</p>
+<p>The first statements in the test method use the request object to set the values of any request parameters. These simulate 
+the values the user would enter into the form fields. Note how the first argument to setParameter is the same as the value 
+of the name attribute in the Struts textfield tag in the register.jsp page.</p>
 
-<p>In this test I’m providing good data for each form field as I want to ensure my validation doesn’t register an error if the user provides correct information.</p>
+<p>In this test I’m providing good data for each form field as I want to ensure my validation doesn’t register an error if 
+the user provides correct information.</p>
 
-<p>I then call the getActionProxy method with the argument of “/register.action” and then the getAction method to get a reference to the Struts action class for this test. This will ensure that the Struts 2 JUnit plugin will know which Action class should be used–the class associated with the register action in the struts.xml. In this case that class is the Register class.</p>
+<p>I then call the getActionProxy method with the argument of “/register.action” and then the getAction method to get a reference 
+to the Struts action class for this test. This will ensure that the Struts 2 JUnit plugin will know which Action class 
+should  be used–the class associated with the register action in the struts.xml. In this case that class is the Register class.</p>
 
-<p>The assertNotNull test ensures that argument to getActionProxy reference an Action class identified in struts.xml. It’s a way of checking that you’ve correctly setup struts.xml for this action.</p>
+<p>The assertNotNull test ensures that argument to getActionProxy reference an Action class identified in struts.xml. It’s 
+a way of checking that you’ve correctly setup struts.xml for this action.</p>
 
-<p>After that I can call actionProxy.execute(). This causes the Struts 2 framework to go through its normal process of Servlet fileter and interceptors for the action identified by the actionProxy (in this case that is the register.action). The validate method of class Register will get called and if it doesn’t create any field or action errors then Struts 2 will call the execute method. In this example, the execute method should return “success”.</p>
+<p>After that I can call actionProxy.execute(). This causes the Struts 2 framework to go through its normal process of Servlet 
+filter and interceptors for the action identified by the actionProxy (in this case that is the register.action). The validate 
+method of class Register will get called and if it doesn’t create any field or action errors then Struts 2 will call 
+the <code class="highlighter-rouge">execute</code> method. In this example, the execute method should return <code class="highlighter-rouge">success</code>.</p>
 
 <p>So in the next statement, I check that success was returned.</p>
 
-<p><strong>Test Validation Should Fail</strong></p>
+<h2 id="test-validation-should-fail">Test Validation Should Fail</h2>
 
-<p>To test that validation should fail, I just need to have a test method that doesn’t provide input for a form field. For example, in the validate method of the Register Action class, is a test to ensure the user has entered some information for the personBean.firstName input field. In the test method I would just not use the request object to set a parameter for that field.</p>
+<p>To test that validation should fail, I just need to have a test method that doesn’t provide input for a form field. 
+For example, in the validate method of the Register Action class, is a test to ensure the user has entered some information 
+for the personBean.firstName input field. In the test method I would just not use the request object to set a parameter 
+for that field.</p>
 
 <p><strong>testExecuteValidationFailsMissingFirstName method from RegisterTest class</strong></p>
 
@@ -222,11 +266,15 @@
 </code></pre>
 </div>
 
-<p>In the last assertEquals statement my test checks that the Struts 2 framework returned “input” as that is what the Struts 2 framework will return if the validation adds a field or action error.</p>
+<p>In the last assertEquals statement my test checks that the Struts 2 framework returned <code class="highlighter-rouge">input</code> as that is what the Struts 2 
+framework will return if the validation adds a field or action error.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
-<p>There is much more you can do with the Struts 2 JUnit plugin to help you test the methods of your Action class in conjunction with the Struts 2 framemwork. If your Struts 2 application uses Spring to inject dependencies into the Action class then the Struts 2 JUnit Plugin has a StrutsSpringTestCase that your test class should extend. Please read <a href="//struts.apache.org/docs/testing-actions.html">Testing Actions</a> to learn more.</p>
+<p>There is much more you can do with the Struts 2 JUnit plugin to help you test the methods of your Action class in conjunction 
+with the Struts 2 framework. If your Struts 2 application uses Spring to inject dependencies into the Action class then 
+the Struts 2 JUnit Plugin has a StrutsSpringTestCase that your test class should extend. Please read <a href="../plugins/junit/">Testing Actions</a> 
+to learn more.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/using-tags.html b/content/getting-started/using-tags.html
index 86d1391..ee97fe8 100644
--- a/content/getting-started/using-tags.html
+++ b/content/getting-started/using-tags.html
@@ -119,26 +119,44 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/using-tags.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="using-tags">Using Tags</h1>
-
-<p>This tutorial assumes you’ve completed the <a href="hello-world-using-struts2.html">Hello World</a> tutorial and have a working helloworld project. The example code for this tutorial, using_tags, is available for checkout from the Struts 2 GitHub repository at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a>. The example projects use Maven to manage the artifact dependencies and to build the .war files.</p>
-
-<p>In the <a href="hello-world-using-struts2.html">Hello World</a> lesson, we added a Struts 2 url tag to the <code class="highlighter-rouge">index.jsp</code> to create a hyperlink to the <code class="highlighter-rouge">hello.action</code>. This tutorial will explore the url and other Struts 2 tags further.</p>
-
-<p>Web applications differ from conventional websites in that web applications can create a dynamic response. To make it easier to reference dynamic data from a page, the Struts 2 framework offers a set of tags. Some of the tags mimic standard HTML tag while providing added value. Other tags create non-standard, but useful controls.</p>
-
-<p>To use the Struts 2 tags on the view page, you must include a tag library directive. Typically, the taglib directive is <code class="highlighter-rouge">&lt;%@ taglib prefix="s" uri="/struts-tags" %\&gt;</code>. So the prefix for all the Struts 2 tags will be “s”. 
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="using-tags">Using Tags</h1>
+
+<ul id="markdown-toc">
+  <li><a href="#struts-2-url-tag" id="markdown-toc-struts-2-url-tag">Struts 2 url Tag</a></li>
+  <li><a href="#struts-2-form-tag" id="markdown-toc-struts-2-form-tag">Struts 2 Form Tag</a></li>
+  <li><a href="#struts-2-property-tag" id="markdown-toc-struts-2-property-tag">Struts 2 property tag</a></li>
+</ul>
+
+<p>This tutorial assumes you’ve completed the <a href="hello-world-using-struts2.html">Hello World</a> tutorial and have a working 
+<strong>helloworld</strong> project. The example code for this tutorial, <strong>using-tags</strong>, is available for checkout from the Struts 2 GitHub 
+repository at <a href="https://github.com/apache/struts-examples">struts-examples</a>. The example projects use Maven to manage 
+the artifact dependencies and to build the .war files.</p>
+
+<p>In the <a href="hello-world-using-struts2.html">Hello World</a> lesson, we added a Struts 2 url tag to the <code class="highlighter-rouge">index.jsp</code> to create 
+a hyperlink to the <code class="highlighter-rouge">hello.action</code>. This tutorial will explore the url and other Struts 2 tags further.</p>
+
+<p>Web applications differ from conventional websites in that web applications can create a dynamic response. To make it 
+easier to reference dynamic data from a page, the Struts 2 framework offers a set of tags. Some of the tags mimic standard 
+HTML tag while providing added value. Other tags create non-standard, but useful controls.</p>
+
+<p>To use the Struts 2 tags on the view page, you must include a tag library directive. Typically, the taglib directive 
+is <code class="highlighter-rouge">&lt;%@ taglib prefix="s" uri="/struts-tags" %\&gt;</code>. So the prefix for all the Struts 2 tags will be <code class="highlighter-rouge">s</code>. 
 If you want to actually read the Struts 2 tag TLD file, you’ll find it in the `META-INF folder of the Struts 2 core jar.</p>
 
 <h2 id="struts-2-url-tag">Struts 2 url Tag</h2>
 
 <p>One use of the Struts 2 Tags is to create links to other web resources, especially to other resources in the local application.</p>
 
-<p>While HTML provides a simple a tag for creating hyperlinks, the HTML tag often requires us to include redundant information. Also the HTML tag cannot easily access dynamic data provided by the framework.</p>
+<p>While HTML provides a simple a tag for creating hyperlinks, the HTML tag often requires us to include redundant information. 
+Also the HTML tag cannot easily access dynamic data provided by the framework.</p>
 
-<p>A very common use case in web applications is linking to other pages. In the <a href="hello-world-using-struts2.html">Hello World</a> tutorial we added a link to <code class="highlighter-rouge">hello.action</code> inside the <code class="highlighter-rouge">index.jsp</code> using the Struts 2 url tag. Please refer to the <a href="https://struts.apache.org/docs/url.html">url documentation</a> for more information about the url tag.</p>
+<p>A very common use case in web applications is linking to other pages. In the <a href="hello-world-using-struts2.html">Hello World</a> 
+tutorial we added a link to <code class="highlighter-rouge">hello.action</code> inside the <code class="highlighter-rouge">index.jsp</code> using the Struts 2 url tag. Please refer 
+to the <a href="../tag-developers/url-tag.html">url documentation</a> for more information about the url tag.</p>
 
 <p><strong>index.jsp</strong></p>
 
@@ -158,7 +176,8 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>When you run the Hello World tutorial in your Servlet container and then mouse over the Hello World hyperlink created by the Struts 2 url tag you’ll see that the URL created is <code class="highlighter-rouge">hello.action</code> (relative to the web context’s root folder).</p>
+<p>When you run the Hello World tutorial in your Servlet container and then mouse over the Hello World hyperlink created 
+by the Struts 2 url tag you’ll see that the URL created is <code class="highlighter-rouge">hello.action</code> (relative to the web context’s root folder).</p>
 
 <p>Examine the <code class="highlighter-rouge">struts.xml</code> configuration in the Hello World tutorial and you will find this:</p>
 
@@ -172,9 +191,11 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>The action node above maps the <code class="highlighter-rouge">hello.action</code> to the execute method of class <code class="highlighter-rouge">HelloWorldAction</code>. If the execute method returns <code class="highlighter-rouge">success</code>, the view page <code class="highlighter-rouge">HelloWorld.jsp</code> (in web context root folder) will be returned to the user.</p>
+<p>The action node above maps the <code class="highlighter-rouge">hello.action</code> to the execute method of class <code class="highlighter-rouge">HelloWorldAction</code>. If the execute method 
+returns <code class="highlighter-rouge">success</code>, the view page <code class="highlighter-rouge">HelloWorld.jsp</code> (in web context root folder) will be returned to the user.</p>
 
-<p>A common use case is that the URL also needs to include a value for a query string parameter such as userName. To add a query string parameter and its value use the Struts 2 param tag, nested inside the url tag.</p>
+<p>A common use case is that the URL also needs to include a value for a query string parameter such as userName. To add 
+a query string parameter and its value use the Struts 2 param tag, nested inside the url tag.</p>
 
 <p>For the Using Tags tutorial add the following to <code class="highlighter-rouge">index.jsp</code> just after the link for Hello World.</p>
 
@@ -189,17 +210,23 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 ...
 </code></pre>
 
-<p>Rather then put the url tag as the value for the anchor tag’s href attribute, we’ve separated out the s:url tag into its own code block. Nested inside the url tag is the Struts 2 param tag. This tag lets you specify a parameter name (e.g. userName) and a value for that parameter (e.g. Bruce Phillips).</p>
+<p>Rather then put the url tag as the value for the anchor tag’s href attribute, we’ve separated out the s:url tag into 
+its own code block. Nested inside the url tag is the Struts 2 param tag. This tag lets you specify a parameter name (
+e.g. userName) and a value for that parameter (e.g. Bruce Phillips).</p>
 
-<p>Notice the use of the var attribute. The value of the var attribute is a reference we can use later in our code to refer to the url created.</p>
+<p>Notice the use of the var attribute. The value of the var attribute is a reference we can use later in our code to refer 
+to the url created.</p>
 
-<p>Examine the anchor tag above. Notice the value of the href attribute is <code class="highlighter-rouge">${helloLink}</code>. The view page will substitute the hyperlink we created using the url tag for the <code class="highlighter-rouge">${helloLink}</code> reference. Note that the query string parameter will be properly URL-encoded (<code class="highlighter-rouge">Bruce+Phillips</code>).</p>
+<p>Examine the anchor tag above. Notice the value of the href attribute is <code class="highlighter-rouge">${helloLink}</code>. The view page will substitute 
+the hyperlink we created using the url tag for the <code class="highlighter-rouge">${helloLink}</code> reference. Note that the query string parameter will 
+be properly URL-encoded (<code class="highlighter-rouge">Bruce+Phillips</code>).</p>
 
 <p>In the next tutorial we’ll cover how Struts can access the query string parameter value.</p>
 
 <h2 id="struts-2-form-tag">Struts 2 Form Tag</h2>
 
-<p>Most applications will use several data entry forms. The Struts 2 tags make creating input forms easy. Consult the <a href="https://struts.apache.org/docs/form-tags.html">Form Tags Reference</a> for all the details about the Struts 2 form tags.</p>
+<p>Most applications will use several data entry forms. The Struts 2 tags make creating input forms easy. 
+Consult the <a href="../tag-developers/form-tags.html">Form Tags Reference</a> for all the details about the Struts 2 form tags.</p>
 
 <p>Each of the Struts 2 form tags has numerous attributes to mimic the normal HTML form tag attributes.</p>
 
@@ -217,7 +244,8 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 &lt;/s:form&gt;
 </code></pre>
 
-<p>The Struts 2 textfield tag provides a input html tag of tag text and the submit tag creates a submit button. When the index page is return by the server to the browser you should see:</p>
+<p>The Struts 2 textfield tag provides a input html tag of tag text and the submit tag creates a submit button. When the index 
+page is return by the server to the browser you should see:</p>
 
 <p><img src="attachments/using_tags_form.png" alt="Struts Form.png" /></p>
 
@@ -243,7 +271,10 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>Note how Struts 2 created a table inside the form to position the form elements. In later tutorials you’ll learn how to specify the layout (table, CSS). The Struts 2 textfield tag created an HTML input tag of type text with a name value that matches the name value of the textfield tag. Struts 2 also created a label HTML tag based on the label value of the textfield tag.</p>
+<p>Note how Struts 2 created a table inside the form to position the form elements. In later tutorials you’ll learn how 
+to specify the layout (table, CSS). The Struts 2 textfield tag created an HTML input tag of type text with a name value 
+that matches the name value of the textfield tag. Struts 2 also created a label HTML tag based on the label value
+of the textfield tag.</p>
 
 <p>In the next tutorial we’ll cover how to use Struts 2 to process this form submission.</p>
 
@@ -256,11 +287,17 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 <pre><code class="language-jsp">&lt;s:property value="messageStore.message" /&gt;
 </code></pre>
 
-<p>The most common use of the property tag is to “get” the value returned by calling a public get method (of the Action class) and then to include that value in the HTML returned to the browser.</p>
+<p>The most common use of the property tag is to “get” the value returned by calling a public get method (of the Action class) 
+and then to include that value in the HTML returned to the browser.</p>
 
-<p>As discussed in the <a href="hello-world-using-struts2.html">Hello World</a> tutorial, the value of <code class="highlighter-rouge">messageStore.message</code> instructs Struts 2 to first call method <code class="highlighter-rouge">getMessageStore</code> of the Action class. That method call returns a <code class="highlighter-rouge">MessageStore</code> object. The <code class="highlighter-rouge">.message</code> part instructs Struts 2 to call the <code class="highlighter-rouge">getMes [...]
+<p>As discussed in the <a href="hello-world-using-struts2.html">Hello World</a> tutorial, the value of <code class="highlighter-rouge">messageStore.message</code> instructs 
+Struts 2 to first call method <code class="highlighter-rouge">getMessageStore</code> of the Action class. That method call returns a <code class="highlighter-rouge">MessageStore</code> object. 
+The <code class="highlighter-rouge">.message</code> part instructs Struts 2 to call the <code class="highlighter-rouge">getMessage</code> method of the <code class="highlighter-rouge">MessageStore</code> object. The <code class="highlighter-rouge">getMessage</code> 
+method returns a String which will be included in the HTML returned to the browser.</p>
 
-<p>One very useful feature of the Struts 2 property tag is that it will automatically convert the most common data types (int, double, boolean) to their String equivalents. To demonstrate this feature let’s add a static int variable to class <code class="highlighter-rouge">HelloWorldAction</code>.</p>
+<p>One very useful feature of the Struts 2 property tag is that it will automatically convert the most common data types 
+(int, double, boolean) to their String equivalents. To demonstrate this feature let’s add a static int variable to class 
+<code class="highlighter-rouge">HelloWorldAction</code>.</p>
 
 <p><strong>Add Static Field</strong></p>
 
@@ -272,7 +309,8 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>Each time the execute method is called we’ll increase <code class="highlighter-rouge">helloCount</code> by 1. So add this code to the <code class="highlighter-rouge">execute</code> method of the <code class="highlighter-rouge">HelloWorldAction</code> class.</p>
+<p>Each time the execute method is called we’ll increase <code class="highlighter-rouge">helloCount</code> by 1. So add this code to the <code class="highlighter-rouge">execute</code> method of the 
+<code class="highlighter-rouge">HelloWorldAction</code> class.</p>
 
 <p><strong>Increase helloCount</strong></p>
 
@@ -280,20 +318,26 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>Whenever a user clicks one of the links on the page index.jsp (or submits the form), method <code class="highlighter-rouge">execute</code> of class <code class="highlighter-rouge">HelloWorldAction</code> will be run and the static field <code class="highlighter-rouge">helloCount</code> will be increased by 1.</p>
+<p>Whenever a user clicks one of the links on the page index.jsp (or submits the form), method <code class="highlighter-rouge">execute</code> of class <code class="highlighter-rouge">HelloWorldAction</code> 
+will be run and the static field <code class="highlighter-rouge">helloCount</code> will be increased by 1.</p>
 
-<p>To include the value of the <code class="highlighter-rouge">helloCount</code> attribute in the <code class="highlighter-rouge">HelloWorld.jsp</code> we can use the Struts 2 property tag. Add the following to <code class="highlighter-rouge">HelloWorld.jsp</code> after the h2 tag.</p>
+<p>To include the value of the <code class="highlighter-rouge">helloCount</code> attribute in the <code class="highlighter-rouge">HelloWorld.jsp</code> we can use the Struts 2 property tag. 
+Add the following to <code class="highlighter-rouge">HelloWorld.jsp</code> after the h2 tag.</p>
 
 <p><strong>Use Property Tag To Display helloCount Value</strong></p>
 
 <pre><code class="language-jsp">&lt;p&gt;I've said hello &lt;s:property value="helloCount" /&gt; times!&lt;/p&gt;
 </code></pre>
 
-<p>So even though the <code class="highlighter-rouge">getHelloCount</code> method returns an integer type, Struts 2 converted it to type String and placed it into the body of the p tag.</p>
+<p>So even though the <code class="highlighter-rouge">getHelloCount</code> method returns an integer type, Struts 2 converted it to type String and placed it 
+into the body of the p tag.</p>
 
-<p>Note that even though <code class="highlighter-rouge">helloCount</code> is a static field, the get method for <code class="highlighter-rouge">helloCount</code> is not static. For Struts 2 to call the <code class="highlighter-rouge">getHelloCount</code> method to get the value of <code class="highlighter-rouge">helloCount</code>, the <code class="highlighter-rouge">getHelloCount</code> method cannot be static.</p>
+<p>Note that even though <code class="highlighter-rouge">helloCount</code> is a static field, the get method for <code class="highlighter-rouge">helloCount</code> is not static. For Struts 2 to call 
+the <code class="highlighter-rouge">getHelloCount</code> method to get the value of <code class="highlighter-rouge">helloCount</code>, the <code class="highlighter-rouge">getHelloCount</code> method cannot be static.</p>
 
-<p>If the value returned by the get method is an object, then the property tag will cause Struts 2 to call the object’s <code class="highlighter-rouge">toString</code> method. Of course, you should always override Class Object’s <code class="highlighter-rouge">toString</code> method in your model classes. Add the following <code class="highlighter-rouge">toString</code> method to the <code class="highlighter-rouge">MessageStore</code> class:</p>
+<p>If the value returned by the get method is an object, then the property tag will cause Struts 2 to call the object’s 
+<code class="highlighter-rouge">toString</code> method. Of course, you should always override Class Object’s <code class="highlighter-rouge">toString</code> method in your model classes. 
+Add the following <code class="highlighter-rouge">toString</code> method to the <code class="highlighter-rouge">MessageStore</code> class:</p>
 
 <p><strong>Add toString Method To Class MessageStore</strong></p>
 
@@ -311,11 +355,13 @@ If you want to actually read the Struts 2 tag TLD file, you’ll find it in the
 </code></pre>
 </div>
 
-<p>Since <code class="highlighter-rouge">getMessageStore</code> of <code class="highlighter-rouge">HelloWorldAction</code> class returns a <code class="highlighter-rouge">MessageStore</code> object, Struts 2 will call the <code class="highlighter-rouge">toString</code> method of class <code class="highlighter-rouge">MessageStore</code>. The string returned by that <code class="highlighter-rouge">toString</code> method will be displayed in the browser.</p>
+<p>Since <code class="highlighter-rouge">getMessageStore</code> of <code class="highlighter-rouge">HelloWorldAction</code> class returns a <code class="highlighter-rouge">MessageStore</code> object, Struts 2 will call the <code class="highlighter-rouge">toString</code> 
+method of class <code class="highlighter-rouge">MessageStore</code>. The string returned by that <code class="highlighter-rouge">toString</code> method will be displayed in the browser.</p>
 
 <p><img src="attachments/using_tags_hello.png" alt="using_tags_hello.png" /></p>
 
-<p>We covered a lot in this tutorial, but we’ve really only scratched the surface of how to use the Struts 2 tags. Consult the <a href="https://struts.apache.org/docs/tag-reference.html">Struts 2 Tag Reference</a> for much more information about all the Struts 2 tags.</p>
+<p>We covered a lot in this tutorial, but we’ve really only scratched the surface of how to use the Struts 2 tags. 
+Consult the <a href="../tag-developers/tag-reference.html">Struts 2 Tag Reference</a> for much more information about all the Struts 2 tags.</p>
 
 <table>
   <tbody>
diff --git a/content/getting-started/wildcard-method-selection.html b/content/getting-started/wildcard-method-selection.html
index 5baae2e..69f636d 100644
--- a/content/getting-started/wildcard-method-selection.html
+++ b/content/getting-started/wildcard-method-selection.html
@@ -119,25 +119,35 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a href="index.html" title="back to Getting Started"><< back to Getting Started</a>
     <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/getting-started/wildcard-method-selection.md" title="Edit this page on GitHub">Edit on GitHub</a>
-    <h1 id="wildcard-method-selection">Wildcard Method Selection</h1>
+    
+    <a href="index.html" title="back to Getting started"><< back to Getting started</a>
+    
+    <h1 class="no_toc" id="wildcard-method-selection">Wildcard Method Selection</h1>
 
-<p>The example code for this tutorial, wildcard_method_selection, is available for checkout at <a href="https://github.com/apache/struts-examples">https://github.com/apache/struts-examples</a></p>
+<ul id="markdown-toc">
+  <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
+  <li><a href="#example-application" id="markdown-toc-example-application">Example Application</a></li>
+  <li><a href="#wildcard-method-selection-1" id="markdown-toc-wildcard-method-selection-1">Wildcard Method Selection</a></li>
+  <li><a href="#dynamic-method-invocation" id="markdown-toc-dynamic-method-invocation">Dynamic Method Invocation</a></li>
+  <li><a href="#summary" id="markdown-toc-summary">Summary</a></li>
+</ul>
 
-<p><strong>Introduction</strong></p>
+<p>The example code for this tutorial, <strong>wildcard-method-selection</strong>, is available for checkout at <a href="https://github.com/apache/struts-examples">struts-examples</a></p>
+
+<h2 id="introduction">Introduction</h2>
 
 <p>In this tutorial we’ll cover how to configure an action node in the struts.xml configuration file so that one action node can be used to relate several different Action URLs to specific methods of the Action class. This will reduce the number of action nodes we must write in the struts.xml configuration file.</p>
 
 <p>The <a href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don’t find an answer to your problem, post a question on the mailing list.</p>
 
-<p><strong>Example Application</strong></p>
+<h2 id="example-application">Example Application</h2>
 
 <p><img src="attachments/att21921805_Screen shot 2010-05-30 at 8.51.40 AM.png" alt="Screen shot 2010-05-30 at 8.51.40 AM.png" /></p>
 
 <p>The example application that supports this tutorial shows how to use Struts 2’s wildcard method selection methodology. The example application is just a simple one that lists some people and lets you edit them, delete them, and add a new person to the list. Everything that the application needs to do with a <code class="highlighter-rouge">Person</code> (the model class) is controlled by the Struts 2 <code class="highlighter-rouge">ActionSupport</code> class <code class="highlighter-ro [...]
 
-<p><strong>Wildcard Method Selection</strong></p>
+<h2 id="wildcard-method-selection-1">Wildcard Method Selection</h2>
 
 <p>Without using the wildcard method selection technique, I’d have to write an action mapping node in the Struts 2 configuration file for each separate action I’d want to call. For example:</p>
 
@@ -184,13 +194,13 @@
 
 <p>If there is no value in front of Person, then the Struts 2 framework will call the execute method of the class <code class="highlighter-rouge">PersonAction</code>.</p>
 
-<p><strong>Dynamic Method Invocation</strong></p>
+<h2 id="dynamic-method-invocation">Dynamic Method Invocation</h2>
 
 <p>The wildcard method selection technique explained above should not be confused with the “Dynamic Method Invocation” technique. The Struts 2 documentation explains this technique (which uses the bang, <code class="highlighter-rouge">!</code>, operator in the action name) and recommends against using the “Dynamic Method Invocation” technique due to security and other reasons related to how this technique is implemented internally.</p>
 
 <p>The Struts 2 documentation also recommends turning off the option to use the dynamic method invocation by setting <code class="highlighter-rouge">struts.enable.DynamicMethodInvocation</code> to <code class="highlighter-rouge">FALSE</code> in the Struts configuration.</p>
 
-<p><strong>Summary</strong></p>
+<h2 id="summary">Summary</h2>
 
 <p>By using the wildcard method selection technique explained above, you can significantly reduce the number of action mapping nodes you need to write and manage in the Struts 2 XML configuration file.</p>
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@struts.apache.org" <commits@struts.apache.org>'].

Mime
View raw message