You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/11/15 07:47:38 UTC

[struts-site] branch master updated (b5d72e6 -> d4be5f5)

This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/struts-site.git.


    from b5d72e6  Fixes wrong paths
     new 77b84e4  Fixes paths and reformats the content
     new 6e080a3  Fixes paths and re-formats content
     new 5386184  Switches to default layout
     new d5cfe24  Adds ToC
     new d4be5f5  Fixes references to example projects

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 source/_layouts/getting-started.html               |  37 -----
 source/getting-started/annotations.md              |  98 +++++++++----
 source/getting-started/coding-actions.md           |  14 +-
 source/getting-started/control-tags.md             |  20 ++-
 source/getting-started/debugging-struts.md         |  79 +++++++---
 source/getting-started/exception-handling.md       |  24 ++-
 source/getting-started/exclude-parameters.md       |  67 ++++++---
 source/getting-started/form-tags.md                |  28 ++--
 .../getting-started/form-validation-using-xml.md   |  28 ++--
 source/getting-started/form-validation.md          |  83 +++++++----
 .../getting-started/hello-world-using-struts2.md   | 114 ++++++++++-----
 .../how-to-create-a-struts2-web-application.md     |  35 ++---
 source/getting-started/http-session.md             |   7 +-
 source/getting-started/introducing-interceptors.md | 104 +++++++++----
 source/getting-started/jasper-reports-tutorial.md  |   4 +
 source/getting-started/message-resource-files.md   | 161 +++++++++++++++------
 source/getting-started/preperable-interface.md     |  62 ++++++--
 source/getting-started/processing-forms.md         |  14 +-
 source/getting-started/spring.md                   | 101 +++++++++----
 source/getting-started/themes.md                   | 141 ++++++++++++------
 source/getting-started/unit-testing.md             |  97 +++++++++----
 source/getting-started/using-tags.md               | 100 +++++++++----
 .../getting-started/wildcard-method-selection.md   |  22 ++-
 23 files changed, 991 insertions(+), 449 deletions(-)
 delete mode 100644 source/_layouts/getting-started.html

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

[struts-site] 01/05: Fixes paths and reformats the content

Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 77b84e4b1c10a015a999e897389ef95af334f610
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Wed Nov 15 07:01:57 2017 +0100

    Fixes paths and reformats the content
---
 source/getting-started/annotations.md | 98 +++++++++++++++++++++++++----------
 1 file changed, 72 insertions(+), 26 deletions(-)

diff --git a/source/getting-started/annotations.md b/source/getting-started/annotations.md
index 5110453..e60dd46 100644
--- a/source/getting-started/annotations.md
+++ b/source/getting-started/annotations.md
@@ -1,22 +1,37 @@
 ---
-layout: getting-started
+layout: default
 title: Annotations
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Annotations
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, annotations, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, annotations, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
-In our previous tutorials we've been using an XML file (`struts.xml`) to configure our applications. The XML file wires up the action names (register), with ActionSupport classes (`RegisterAction.java`), and with the result to render back to the browser (`register.jsp`). Struts 2 provides an alternative to using XML to configure your application by using standard naming conventions and annotations for your action names, `ActionSupport` classes, and results.
+In our previous tutorials we've been using an XML file (`struts.xml`) to configure our applications. The XML file wires 
+up the action names (register), with ActionSupport classes (`RegisterAction.java`), and with the result to render back 
+to the browser (`register.jsp`). Struts 2 provides an alternative to using XML to configure your application by using 
+standard naming conventions and annotations for your action names, `ActionSupport` classes, and results.
 
-This tutorial assumes you understand how to apply annotations to Java classes and methods. If you're not familiar with annotations, consult the [Java online tutorial](http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html).
+This tutorial assumes you understand how to apply annotations to Java classes and methods. If you're not familiar with 
+annotations, consult the [Java online tutorial](http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html).
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Struts 2 Convention Plugin__
+## Struts 2 Convention Plugin
 
-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:
+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:
 
 **Convention Plugin Dependency**
 
@@ -27,27 +42,50 @@ Struts 2 enables the use of standard naming conventions and annotations when you
     <version>X.X.X.X</version>
 </dependency>
 ```
-If you're using Ant then copy the struts2-convention-plugin jar file from the Struts 2 download to your WEB-INF/lib folder.
 
-The convention plugin provide several different ways you can configure your Struts 2 application without using XML. Consult the [Convention Plugin](//struts.apache.org/docs/convention-plugin.html) documentation for complete details. This tutorial only examines one simple way of following the conventions provided by the Convention plugin.
+If you're using Ant then copy the struts2-convention-plugin jar file from the Struts 2 download to your `WEB-INF/lib` folder.
+
+The convention plugin provide several different ways you can configure your Struts 2 application without using XML. 
+Consult the [Convention Plugin](../plugins/convention/) documentation for complete details. This tutorial only examines 
+one simple way of following the conventions provided by the Convention plugin.
 
-When you run the example application you'll see on the `index.jsp` 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 `HelloAction.java` (which is a Struts 2 `ActionSupport` class) is run. The view page rendered back to the browser after the execute method returns success is `hello-success.jsp`.
+When you run the example application you'll see on the `index.jsp` 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 `HelloAction.java` (which is a Struts 2 `ActionSupport` class) 
+is run. The view page rendered back to the browser after the execute method returns success is `hello-success.jsp`.
 
-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, `HelloAction.java`, 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 application follows is that HelloAction.java exte [...]
+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, `HelloAction.java`, 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 application follows is that `HelloAction.java`
+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.
 
-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 `hello-success.jsp` 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 `hello-input.jsp` or `hello-error.jsp`.
+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 
+`hello-success.jsp` 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 
+`hello-input.jsp` or `hello-error.jsp`.
 
-__Struts 2 Configuration Plugin__
+## Struts 2 Configuration Plugin
 
-In a [previous tutorial](debugging-struts.html) 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 h [...]
+In a [previous tutorial](debugging-struts.html) 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.
 
 ![Screen shot 2010-10-24 at 10.51.45 AM.png](attachments/att24346643_Screen shot 2010-10-24 at 10.51.45 AM.png)
 
-__Annotations__
+## Annotations
 
-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).
+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).
 
-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.
+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.
 
 **Action Annotation**
 
@@ -60,13 +98,18 @@ public String input() throws Exception {
 }
 ```
 
-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 `RegisterAction`. On the example application's home page is a link to Register for the drawing with a URL of register-input.action.
+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 `RegisterAction`. 
+On the example application's home page is a link to Register for the drawing with a URL of `register-input.action`.
 
-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 `register-success.jsp`.
+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 `register-success.jsp`.
 
-__Struts 2 Configuration Values__
+## Struts 2 Configuration Values
 
-In previous examples, we included in struts.xml values for some of the Struts 2 configuration parameters.
+In previous examples, we included in `struts.xml` values for some of the Struts 2 configuration parameters.
 
 **struts.xml parameter configuration**
 
@@ -74,14 +117,14 @@ In previous examples, we included in struts.xml values for some of the Struts 2
 <constant name="struts.devMode" value="true" />
 ```
 
-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:
+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`:
 
 **Struts 2 Parameter Configuration web.xml**
 
 ```xml
 <filter>
     <filter-name>struts2</filter-name>
-    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
+    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
     <init-param>
         <param-name>struts.devMode</param-name>
         <param-value>true</param-value>
@@ -89,8 +132,11 @@ When we don't use a struts.xml file, we can set the value of these Struts 2 para
 </filter>
 ```
 
-__Summary__
+## Summary
 
-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 [Convention Plugin](//struts.apache.org/docs/convention-plugin.html) documentation for alternative ways to configure your Str [...]
+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 [Convention Plugin](../plugins/convention/) documentation for alternative ways to configure your Struts 2 application.
 
 |Return to [Spring and Struts 2](spring.html)|or|onward to [Introducing Interceptors](introducing-interceptors.html)|

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

[struts-site] 05/05: Fixes references to example projects

Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d4be5f599e405ef1a67b882889331a32f8878f3b
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Wed Nov 15 08:47:13 2017 +0100

    Fixes references to example projects
---
 source/getting-started/annotations.md              |  2 +-
 source/getting-started/coding-actions.md           |  4 +++-
 source/getting-started/control-tags.md             |  2 +-
 source/getting-started/debugging-struts.md         |  2 +-
 source/getting-started/exception-handling.md       |  2 +-
 source/getting-started/exclude-parameters.md       |  2 +-
 source/getting-started/form-tags.md                |  2 +-
 .../getting-started/form-validation-using-xml.md   |  2 +-
 source/getting-started/form-validation.md          |  2 +-
 .../getting-started/hello-world-using-struts2.md   |  2 ++
 .../how-to-create-a-struts2-web-application.md     | 25 ++++++++--------------
 source/getting-started/http-session.md             |  2 +-
 source/getting-started/message-resource-files.md   |  2 +-
 source/getting-started/preperable-interface.md     |  2 +-
 source/getting-started/processing-forms.md         |  4 ++--
 source/getting-started/spring.md                   |  2 +-
 source/getting-started/unit-testing.md             |  2 +-
 source/getting-started/using-tags.md               |  2 +-
 .../getting-started/wildcard-method-selection.md   |  2 +-
 19 files changed, 31 insertions(+), 34 deletions(-)

diff --git a/source/getting-started/annotations.md b/source/getting-started/annotations.md
index e60dd46..fa74e75 100644
--- a/source/getting-started/annotations.md
+++ b/source/getting-started/annotations.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, annotations, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **annotations**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 
diff --git a/source/getting-started/coding-actions.md b/source/getting-started/coding-actions.md
index ccc83ea..b10616f 100644
--- a/source/getting-started/coding-actions.md
+++ b/source/getting-started/coding-actions.md
@@ -12,7 +12,9 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-This tutorial assumes you've completed the [Using Struts 2 Tags](using-tags.html) 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: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+This tutorial assumes you've completed the [Using Struts 2 Tags](using-tags.html) 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 
+[struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/control-tags.md b/source/getting-started/control-tags.md
index f33a799..e3a75a7 100644
--- a/source/getting-started/control-tags.md
+++ b/source/getting-started/control-tags.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, control_tags, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **control-tags**, is available at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 
diff --git a/source/getting-started/debugging-struts.md b/source/getting-started/debugging-struts.md
index 6526e86..fdaa75b 100644
--- a/source/getting-started/debugging-struts.md
+++ b/source/getting-started/debugging-struts.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, **debugging_struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **debugging-struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/exception-handling.md b/source/getting-started/exception-handling.md
index 41292ee..30c9416 100644
--- a/source/getting-started/exception-handling.md
+++ b/source/getting-started/exception-handling.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The code for this tutorial, exception_handling, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+The code for this tutorial, **exception-handling**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/exclude-parameters.md b/source/getting-started/exclude-parameters.md
index ce9c60b..1e54fee 100644
--- a/source/getting-started/exclude-parameters.md
+++ b/source/getting-started/exclude-parameters.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, **exclude_parameters**, is available at [struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **exclude-parameters**, is available at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/form-tags.md b/source/getting-started/form-tags.md
index 8888ad8..b0d3aaf 100644
--- a/source/getting-started/form-tags.md
+++ b/source/getting-started/form-tags.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, form_tags, can be checked out from [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **form-tags**, can be checked out from [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/form-validation-using-xml.md b/source/getting-started/form-validation-using-xml.md
index 268bfe8..64d0eb1 100644
--- a/source/getting-started/form-validation-using-xml.md
+++ b/source/getting-started/form-validation-using-xml.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, form_xml_validation, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **form-xml-validation**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 
diff --git a/source/getting-started/form-validation.md b/source/getting-started/form-validation.md
index e483728..871c170 100644
--- a/source/getting-started/form-validation.md
+++ b/source/getting-started/form-validation.md
@@ -13,7 +13,7 @@ parent:
 {:toc}
 
 This tutorial assumes you've completed the [Processing Forms](processing-forms.html) tutorial and have a working 
-**form_processing** project. The example code for this tutorial, **form_validation**, is available for checkout from 
+**form-processing** project. The example code for this tutorial, **form-validation**, is available for checkout from 
 the Struts 2 GitHub repository [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
diff --git a/source/getting-started/hello-world-using-struts2.md b/source/getting-started/hello-world-using-struts2.md
index aa4867e..74bde20 100644
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@ -12,6 +12,8 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
+## Description
+
 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, 
diff --git a/source/getting-started/how-to-create-a-struts2-web-application.md b/source/getting-started/how-to-create-a-struts2-web-application.md
index bb48478..e3a6640 100644
--- a/source/getting-started/how-to-create-a-struts2-web-application.md
+++ b/source/getting-started/how-to-create-a-struts2-web-application.md
@@ -14,30 +14,23 @@ parent:
 
 This tutorial walks through installing the framework and creating a simple application.
 
-<div class="alert alert-block alert-error">
-
 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> 
-
-</div>
+ - Java
+ - Filters, JSP, and Tag Libraries
+ - JavaBeans
+ - HTML and HTTP
+ - Web Containers (such as Tomcat)
+ - XML
 
-<i class="glyphicon glyphicon-info-sign alert-info" aria-hidden="true"></i> For more about supporting technologies, 
-see the [Key Technologies Primer](/primer.html). 
+> For more about supporting technologies, see the [Key Technologies Primer](../primer.html). 
 
-### Java Requirements
+## Java Requirements
 
 Struts 2 requires Servlet API 2.4 or higher, JSP 2.0 or higher, and Java 7 or higher.
 
-### Our First Application
+## Our First Application
 
 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/source/getting-started/http-session.md b/source/getting-started/http-session.md
index c710db8..bc7419a 100644
--- a/source/getting-started/http-session.md
+++ b/source/getting-started/http-session.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, http_session, is available at [https://github.com/apache/struts-examples].
+The example code for this tutorial, **http-session**, is available at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/message-resource-files.md b/source/getting-started/message-resource-files.md
index fc798c5..8443811 100644
--- a/source/getting-started/message-resource-files.md
+++ b/source/getting-started/message-resource-files.md
@@ -13,7 +13,7 @@ parent:
 {:toc}
 
 This tutorial assumes you've completed the [Form Validation](form-validation.html) tutorial and have a working 
-**form_validation** project. The example code for this tutorial, **message_resource**, is available for checkout from the 
+**form-validation** project. The example code for this tutorial, **message-resource**, is available for checkout from the 
 Struts 2 GitHub repository at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
diff --git a/source/getting-started/preperable-interface.md b/source/getting-started/preperable-interface.md
index 13fb079..4649d37 100644
--- a/source/getting-started/preperable-interface.md
+++ b/source/getting-started/preperable-interface.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, **preparable_interface**, is available at [struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **preparable-interface**, is available at [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/processing-forms.md b/source/getting-started/processing-forms.md
index b81c452..36fcb3c 100644
--- a/source/getting-started/processing-forms.md
+++ b/source/getting-started/processing-forms.md
@@ -13,8 +13,8 @@ parent:
 {:toc}
 
 This tutorial assumes you've completed the [Coding Struts 2 Actions](coding-actions.html) 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: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+**coding-actions** project. The example code for this tutorial, **form-processing**, is available for checkout from 
+the Struts 2 GitHub repository [struts-examples](https://github.com/apache/struts-examples).
 
 ## Introduction
 
diff --git a/source/getting-started/spring.md b/source/getting-started/spring.md
index 4e535d1..77d7b7b 100644
--- a/source/getting-started/spring.md
+++ b/source/getting-started/spring.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, **spring_struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **spring-struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 
diff --git a/source/getting-started/unit-testing.md b/source/getting-started/unit-testing.md
index d1ed92e..b7f0221 100644
--- a/source/getting-started/unit-testing.md
+++ b/source/getting-started/unit-testing.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, **unit_testing**, is available at [struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **unit-testing**, is available at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 
diff --git a/source/getting-started/using-tags.md b/source/getting-started/using-tags.md
index 3928905..b2ce5f4 100644
--- a/source/getting-started/using-tags.md
+++ b/source/getting-started/using-tags.md
@@ -13,7 +13,7 @@ parent:
 {:toc}
 
 This tutorial assumes you've completed the [Hello World](hello-world-using-struts2.html) tutorial and have a working 
-helloworld project. The example code for this tutorial, **using_tags**, is available for checkout from the Struts 2 GitHub 
+**helloworld** project. The example code for this tutorial, **using-tags**, is available for checkout from the Struts 2 GitHub 
 repository at [struts-examples](https://github.com/apache/struts-examples). The example projects use Maven to manage 
 the artifact dependencies and to build the .war files.
 
diff --git a/source/getting-started/wildcard-method-selection.md b/source/getting-started/wildcard-method-selection.md
index 841a4c7..7d483c3 100644
--- a/source/getting-started/wildcard-method-selection.md
+++ b/source/getting-started/wildcard-method-selection.md
@@ -12,7 +12,7 @@ parent:
 * Will be replaced with the ToC, excluding a header
 {:toc}
 
-The example code for this tutorial, wildcard_method_selection, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **wildcard-method-selection**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
 ## Introduction
 

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

[struts-site] 03/05: Switches to default layout

Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 5386184256325b170dc888b1f05d4f187d7403ae
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Wed Nov 15 08:33:23 2017 +0100

    Switches to default layout
---
 source/_layouts/getting-started.html               | 37 ----------------------
 source/getting-started/coding-actions.md           |  6 +++-
 source/getting-started/control-tags.md             |  6 +++-
 source/getting-started/exception-handling.md       |  6 +++-
 source/getting-started/form-tags.md                |  6 +++-
 .../getting-started/form-validation-using-xml.md   |  6 +++-
 .../how-to-create-a-struts2-web-application.md     |  5 ++-
 source/getting-started/http-session.md             |  5 ++-
 source/getting-started/processing-forms.md         |  6 +++-
 .../getting-started/wildcard-method-selection.md   |  6 +++-
 10 files changed, 43 insertions(+), 46 deletions(-)

diff --git a/source/_layouts/getting-started.html b/source/_layouts/getting-started.html
deleted file mode 100644
index b672f8f..0000000
--- a/source/_layouts/getting-started.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8"/>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
-  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
-  <meta http-equiv="Content-Language" content="en"/>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-
-  <title>{{ page.title }}</title>
-
-  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
-  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
-  <link href="/css/main.css" rel="stylesheet">
-  <link href="/css/custom.css" rel="stylesheet">
-  <link href="/highlighter/github-theme.css" rel="stylesheet">
-
-  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
-  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
-  <script type="text/javascript" src="/js/community.js"></script>
-</head>
-<body>
-
-{% include header.html %}
-
-<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="{{ site.repository_url }}/edit/master/source/{{ page.path }}" title="Edit this page on GitHub">Edit on GitHub</a>
-    {{ content }}
-  </section>
-</article>
-
-{% include footer.html %}
-
-</body>
-</html>
diff --git a/source/getting-started/coding-actions.md b/source/getting-started/coding-actions.md
index 924d0ea..cd45a74 100644
--- a/source/getting-started/coding-actions.md
+++ b/source/getting-started/coding-actions.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Coding actions
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Coding actions
 
 This tutorial assumes you've completed the [Using Struts 2 Tags](using-tags.html) 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: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
diff --git a/source/getting-started/control-tags.md b/source/getting-started/control-tags.md
index 50307a1..a8bf1cf 100644
--- a/source/getting-started/control-tags.md
+++ b/source/getting-started/control-tags.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Control tags
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Control Tags
 
 The example code for this tutorial, control_tags, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
diff --git a/source/getting-started/exception-handling.md b/source/getting-started/exception-handling.md
index ec49d54..b7f67af 100644
--- a/source/getting-started/exception-handling.md
+++ b/source/getting-started/exception-handling.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Exception handling
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Exception Handling
 
 The code for this tutorial, exception_handling, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
diff --git a/source/getting-started/form-tags.md b/source/getting-started/form-tags.md
index 85509a1..b1ef021 100644
--- a/source/getting-started/form-tags.md
+++ b/source/getting-started/form-tags.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Form tags
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Form Tags
 
 The example code for this tutorial, form_tags, can be checked out from [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
diff --git a/source/getting-started/form-validation-using-xml.md b/source/getting-started/form-validation-using-xml.md
index 94b97c0..41180c1 100644
--- a/source/getting-started/form-validation-using-xml.md
+++ b/source/getting-started/form-validation-using-xml.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Form validation using XML
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Form Validation Using XML
 
 The example code for this tutorial, form_xml_validation, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
diff --git a/source/getting-started/how-to-create-a-struts2-web-application.md b/source/getting-started/how-to-create-a-struts2-web-application.md
index 8aba5e5..997ffa4 100644
--- a/source/getting-started/how-to-create-a-struts2-web-application.md
+++ b/source/getting-started/how-to-create-a-struts2-web-application.md
@@ -1,6 +1,9 @@
 ---
-layout: getting-started
+layout: default
 title: How to create a Struts 2 web application
+parent:
+    title: Getting started
+    url: index.html
 ---
 # How To Create A Struts 2 Web Application
 
diff --git a/source/getting-started/http-session.md b/source/getting-started/http-session.md
index fa874a6..c710db8 100644
--- a/source/getting-started/http-session.md
+++ b/source/getting-started/http-session.md
@@ -1,6 +1,9 @@
 ---
-layout: getting-started
+layout: default
 title: Http Session
+parent:
+    title: Getting started
+    url: index.html
 ---
 
 # HTTP Session
diff --git a/source/getting-started/processing-forms.md b/source/getting-started/processing-forms.md
index 3c4c67f..8d3ffe3 100644
--- a/source/getting-started/processing-forms.md
+++ b/source/getting-started/processing-forms.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Processing forms
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Processing Forms
 
 This tutorial assumes you've completed the [Coding Struts 2 Actions](coding-actions.html) tutorial and have a working 
diff --git a/source/getting-started/wildcard-method-selection.md b/source/getting-started/wildcard-method-selection.md
index e1f6036..44e1bcd 100644
--- a/source/getting-started/wildcard-method-selection.md
+++ b/source/getting-started/wildcard-method-selection.md
@@ -1,7 +1,11 @@
 ---
-layout: getting-started
+layout: default
 title: Wildcard Method Selection
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Wildcard Method Selection
 
 The example code for this tutorial, wildcard_method_selection, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)

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

[struts-site] 02/05: Fixes paths and re-formats content

Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 6e080a3ad97d4be0f7194835e1b38a2321bbdad8
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Wed Nov 15 08:31:15 2017 +0100

    Fixes paths and re-formats content
---
 source/getting-started/debugging-struts.md         |  79 +++++++---
 source/getting-started/exclude-parameters.md       |  67 ++++++---
 source/getting-started/form-validation.md          |  83 +++++++----
 .../getting-started/hello-world-using-struts2.md   | 112 +++++++++-----
 source/getting-started/introducing-interceptors.md | 104 +++++++++----
 source/getting-started/message-resource-files.md   | 161 +++++++++++++++------
 source/getting-started/preperable-interface.md     |  62 ++++++--
 source/getting-started/spring.md                   | 101 +++++++++----
 source/getting-started/themes.md                   | 141 ++++++++++++------
 source/getting-started/unit-testing.md             |  97 +++++++++----
 source/getting-started/using-tags.md               | 100 +++++++++----
 11 files changed, 786 insertions(+), 321 deletions(-)

diff --git a/source/getting-started/debugging-struts.md b/source/getting-started/debugging-struts.md
index 2bacd96..6526e86 100644
--- a/source/getting-started/debugging-struts.md
+++ b/source/getting-started/debugging-struts.md
@@ -1,22 +1,39 @@
 ---
-layout: getting-started
+layout: default
 title: Debugging Struts
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Debugging Struts
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, debugging_struts, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **debugging_struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
-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.
+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.
 
-The Struts 2 [user mailing list](http://struts.apache.org/mail.html) 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.
+The Struts 2 [user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Configuration Plugin__
+## Configuration Plugin
 
-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.
+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.
 
-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).
+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).
 
 ```html
 <a href='<s:url action="index" namespace="config-browser" />'>Launch the configuration browser</a>
@@ -28,34 +45,54 @@ Clicking on the link for the configuration browser will cause the Struts 2 frame
 
 ![debuging-struts-1.png](attachments/att17137672_debuging-struts-1.png)
 
-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.
+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.
 
 ![debuging-struts-2.png](attachments/att17137673_debuging-struts-2.png)
 
-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.
+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.
 
-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.
+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.
 
-__Using the Debugging Interceptor__
+## Using the Debugging Interceptor
 
-If you have set `devMode` to true (in the example application see `struts.xml`) 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.
+If you have set `devMode` to true (in the example application see `struts.xml`) 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.
 
-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 [DebuggingInterceptor](//struts.apache.org/docs/debugginginterceptor.html)  for more detail.
+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 [DebuggingInterceptor](../core-developers/debugging-interceptor.html) for more detail.
 
-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.
+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.
 
 ![debuging-struts-3.png](attachments/att17137674_debuging-struts-3.png)
 
-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.
+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.
 
-__Struts 2 Logging__
+## Struts 2 Logging
 
-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 `log4j.xml`. The two major packages involved in the Struts 2 framework, `com.opensymphony` and `org.apache.struts2`, 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 [Logging](// [...]
+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 `log4j2.xml`. The two major packages involved in the Struts 2 framework, 
+`com.opensymphony` and `org.apache.struts2`, 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 [Logging](../core-developers/logging.html)
+page for other options.
 
-__Summary__
+## Summary
 
-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.
+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.
 
-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.
+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.
 
 |Return to [Exception handling](exception-handling.html)|or|onward to [Form tags](form-tags.html)|
diff --git a/source/getting-started/exclude-parameters.md b/source/getting-started/exclude-parameters.md
index 45436da..ce9c60b 100644
--- a/source/getting-started/exclude-parameters.md
+++ b/source/getting-started/exclude-parameters.md
@@ -1,20 +1,39 @@
 ---
-layout: getting-started
+layout: default
 title: Exclude parameters
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Exclude Parameters
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, exclude_parameters, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **exclude_parameters**, is available at [struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
-When [Struts development mode is set to true](//struts.apache.org/docs/strutsproperties.html) (also see [Debugging Struts](debugging-struts.html)) 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  [...]
+When [Struts development mode is set to true](../core-developers/struts-xml.html) (also see [Debugging Struts](debugging-struts.html)) 
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Processing Request Parameters__
+## Processing Request Parameters
 
-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  [...]
+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.
 
 Consider this code which creates a form:
 
@@ -35,7 +54,8 @@ Consider this code which creates a form:
 </s:form>
 ```
 
-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):
+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):
 
 **Log Messages**
 
@@ -49,11 +69,14 @@ SEVERE: Developer Notification (set struts.devMode to false to disable this mess
 Unexpected Exception caught setting 'submit' on 'class org.apache.struts.edit.action.EditAction: Error setting expression 'submit' with value ['Save Changes', ]
 ```
 
-__Excluding Request Parameters From Struts 2 Processing__
+## Excluding Request Parameters From Struts 2 Processing
 
 If you're not familiar with setting up a custom interceptor stack for your Struts 2 application review [Introducing Interceptors](introducing-interceptors.html).
 
-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:
+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:
 
 **Setup Interceptor Stack To Exclude submit Parameter**
 
@@ -71,18 +94,28 @@ To exclude specific parameters from being processed by the Struts 2 framework yo
 <default-interceptor-ref name="appDefault" />
 ```
 
-The value of node `<param name="params.excludeParams">` 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.
+The value of node `<param name="params.excludeParams">` 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.
 
-See the [Basic Stack of Interceptors described here](//struts.apache.org/docs/struts-defaultxml.html) 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.
+See the [Basic Stack of Interceptors described here](../core-developers/struts-default-xml.html) 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.
 
-__Example Application__
+## Example Application
 
-Download the example application, [Exclude_Params_Struts2_Mvn](http://code.google.com/p/struts2-examples/downloads/list) 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.
+Download the example application, [exclude-params](https://github.com/apache/struts-examples/tree/master/exclude-parameters) 
+that demonstrates excluding a request parameter. See the project's README.txt file for how to build and run the application.
 
-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.
+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.
 
-__Summary__
+## Summary
 
-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 [...]
+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 `<param name="params.excludeParams">` node.
 
 |Return to [Preparable Interface](preperable-interface.html)|or|back to [Getting started](index.html)|
diff --git a/source/getting-started/form-validation.md b/source/getting-started/form-validation.md
index 187b158..e483728 100644
--- a/source/getting-started/form-validation.md
+++ b/source/getting-started/form-validation.md
@@ -1,32 +1,48 @@
 ---
-layout: getting-started
+layout: default
 title: Form Validation
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Form Validation
+{:.no_toc}
 
-This tutorial assumes you've completed the [Processing Forms](processing-forms.html) 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: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-> 
+This tutorial assumes you've completed the [Processing Forms](processing-forms.html) 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 [struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
-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.
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Add validate Method__
+## Add validate Method
 
-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 _Processing Forms_  tutorial, let's say that we have these business rules:
+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 [Processing Forms](processing-forms.html) tutorial, let's say that we have 
+these business rules:
 
 1. User must provide a first name
 2. User must provide an email address
 3. User younger then 18 cannot register
 
-If you recall from the [Processing Forms](processing-forms.html) 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).
+If you recall from the [Processing Forms](processing-forms.html) 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).
 
-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.
+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.
 
-Add the following validate method to Register.java (the Action class).
+Add the following validate method to `Register.java` (the Action class).
 
 **validate method**
 
@@ -46,15 +62,19 @@ public void validate(){
 }
 ```
 
-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).
+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).
 
-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.
+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.
 
-__Handle Input Being Returned__
+## Handle Input Being Returned
 
-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.
+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.
 
-To handle the return value of "input" we need to add the following result to our action node in struts.xml.
+To handle the return value of `input` we need to add the following result to our action node in `struts.xml`.
 
 ```xml
 <result name="input">/register.jsp</result>
@@ -62,35 +82,44 @@ To handle the return value of "input" we need to add the following result to our
 
 The above result node goes just after the success result node for the register action and before the closing of the action node.
 
-__Error Messages__
+## Error Messages
 
-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.
+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.
 
-So the following addFieldError method call:
+So the following `addFieldError` method call:
 
 ```java
 addFieldError("personBean.firstName", "First name is required.")
 ```
 
-will cause the message "First name is required" to be displayed above the firstName field on the form.
+will cause the message _First name is required_ to be displayed above the `firstName` field on the form.
 
-If you have made the above changes to the _Processing Forms_  tutorial or you have downloaded from [Google Code](http://code.google.com/p/struts2-examples/downloads/list) 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:
+If you have made the above changes to the [Processing Forms](processing-forms.html) tutorial or you have downloaded 
+from [form-validation](https://github.com/apache/struts-examples/tree/master/form-validation) 
+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:
 
 ![form_errors.png](attachments/att14975003_form_errors.png)
 
-Struts 2 called the validate method, validation failed, the register.jsp was displayed with the error messages.
+Struts 2 called the validate method, validation failed, the `register.jsp` was displayed with the error messages.
 
-__Styling The Error Messages__
+## Styling The Error Messages
 
-The Struts 2 s:head tag can be used to provide CSS that includes a style for the error message. Add `<s:head />` to register.jsp before the closing HTML `</head>` tag. Go through the same steps as above and you should see:
+The Struts 2 `s:head` tag can be used to provide CSS that includes a style for the error message. Add `<s:head />` 
+to `register.jsp` before the closing HTML `</head>` tag. Go through the same steps as above and you should see:
 
 ![form_errors_styled.png](attachments/att14975001_form_errors_styled.png)
 
-__Summary__
+## Summary
 
-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 [Validation](//struts.apache.org/docs/validation.html) .
+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 [Validation](../core-developers/validation.html) .
 
-__Up Next__
+## Up Next
 
 In our next tutorial we'll cover how to use message resource files to separate out the text from the view page.
 
diff --git a/source/getting-started/hello-world-using-struts2.md b/source/getting-started/hello-world-using-struts2.md
index 9902dd6..aa4867e 100644
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@ -1,26 +1,41 @@
 ---
-layout: getting-started
+layout: default
 title: Hello World using Struts 2
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Hello World Using Struts 2
+{:.no_toc}
 
-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.
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-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 [How To Create A Struts 2 Web Application](how-to-create-a-struts2-web-application.html)), to create a "Hello World" example, you need to do four things:
+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.
 
-1. Create a class to store the welcome message (the model)
+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 [How To Create A Struts 2 Web Application](how-to-create-a-struts2-web-application.html)), 
+to create a "Hello World" example, you need to do four things:
 
+1. Create a class to store the welcome message (the model)
 2. Create a server page to present the message (the view)
-
 3. Create an Action class to control the interaction between the user, the model, and the view (the controller)
-
 4. Create a mapping (`struts.xml`) to couple the Action class and view
 
-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.
+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.
 
-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.
+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.
 
-> This tutorial assumes you've completed the [How To Create A Struts 2 Web Application](how-to-create-a-struts2-web-application.html) 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 [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples). The example projects use Maven to manage the artifact dependencies and to build the .war files.
+> This tutorial assumes you've completed the [How To Create A Struts 2 Web Application](how-to-create-a-struts2-web-application.html) 
+> 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 [struts-examples](https://github.com/apache/struts-examples). The example projects 
+> use Maven to manage the artifact dependencies and to build the .war files.
 
 ## The Code
 
@@ -31,7 +46,9 @@ Let's modify the basic-struts project to add the following:
 - an Action class to act as the controller
 - a configuration that ties everything together
 
-> The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+> The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
 ### Step 1 - Create The Model Class MessageStore.java
 
@@ -57,11 +74,15 @@ public class MessageStore {
 }
 ```
 
-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 (`HelloWorld.jsp`) follow the [JavaBean-style conventions](http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions).
+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 (`HelloWorld.jsp`) follow the [JavaBean-style conventions](http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions).
 
 ### Step 2 - Create The Action Class HelloWorldAction.java
 
-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 `HelloWorld.jsp`) is rendered.
+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 `HelloWorld.jsp`) is rendered.
 
 Note the package and import statements below.
 
@@ -89,15 +110,19 @@ public class HelloWorldAction extends ActionSupport {
 }
 ```
 
-The Struts 2 framework will create an object of the `HelloWorldAction` 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).
+The Struts 2 framework will create an object of the `HelloWorldAction` 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).
 
 In this example, the execute method creates an object of class `MessageStore` and then returns the String constant `SUCCESS`.
 
-Note also the public getter method for the private `MessageStore` object. Since we want to make the `MessageStore` object available to the view page, `HelloWorld.jsp`, we need to follow the [JavaBean-style](http://en.wikipedia.org/wiki/JavaBean\#JavaBean_conventions) of providing getter and setter methods where needed.
+Note also the public getter method for the private `MessageStore` object. Since we want to make the `MessageStore` object 
+available to the view page, `HelloWorld.jsp`, we need to follow the [JavaBean-style](http://en.wikipedia.org/wiki/JavaBean#JavaBean_conventions) 
+of providing getter and setter methods where needed.
 
 ### Step 3 - Create The View HelloWorld.jsp
 
-We need a server page to present the message that is stored in the model class `MessageStore`. Create the below JSP in the `src/main/webapp` folder.
+We need a server page to present the message that is stored in the model class `MessageStore`. Create the below JSP in 
+the `src/main/webapp` folder.
 
 **HelloWorld.jsp**
 
@@ -116,17 +141,25 @@ We need a server page to present the message that is stored in the model class `
 </html>
 ```
 
-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 `s`.
+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 `s`.
 
-The `<s:property>` tag displays the value returned by calling the method `getMessageStore` of the `HelloWorldAction` controller class. That method returns a `MessageStore` object. By adding the `.message` onto the messageStore part of the value attribute we are telling the Struts 2 framework to call the `getMessage` method of that `MessageStore` object. The `getMessage` method of class `MessageStore` returns a String. It is that String that will be displayed by the `<s:property>` tag.
+The `<s:property>` tag displays the value returned by calling the method `getMessageStore` of the `HelloWorldAction` 
+controller class. That method returns a `MessageStore` object. By adding the `.message` onto the messageStore part of 
+the value attribute we are telling the Struts 2 framework to call the `getMessage` method of that `MessageStore` object. 
+The `getMessage` method of class `MessageStore` returns a String. It is that String that will be displayed by the `<s:property>` tag.
 
 We'll learn more about tags in the next tutorial. See the _Struts Tags_  for more information about tags.
 
 ### Step 4 - Add The Struts Configuration In struts.xml
 
-We need a mapping to tie the URL, the `HelloWorldAction` class (controller), and the `HelloWorld.jsp` (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.
+We need a mapping to tie the URL, the `HelloWorldAction` class (controller), and the `HelloWorld.jsp` (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.
 
-Edit the `struts.xml` 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 `struts.xml` should look like:
+Edit the `struts.xml` 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 `struts.xml` should look like:
 
 **struts.xml**
 
@@ -152,9 +185,11 @@ Edit the `struts.xml` file (in the Mvn project that file is in the src/main/reso
 
 ### Step 5 - Create The URL Action
 
-Let's add an Action URL inside `index.jsp` (see `src/main/webapp` folder) so the user can click on a link to tell the Struts 2 framework to run the execute method of the `HelloWorldAction` class and render the `HelloWorld.jsp` view.
+Let's add an Action URL inside `index.jsp` (see `src/main/webapp` folder) so the user can click on a link to tell the Struts 2 
+framework to run the execute method of the `HelloWorldAction` class and render the `HelloWorld.jsp` view.
 
-First add the taglib directive at the top of the jsp `<%@ taglib prefix="s" uri="/struts-tags" %>`. Next add this p tag `<p><a href="<s:url action='hello'/>">Hello World</a></p>` after the h1 tag. Your new index.jsp should look like:
+First add the taglib directive at the top of the jsp `<%@ taglib prefix="s" uri="/struts-tags" %>`. Next add this `p` tag 
+`<p><a href="<s:url action='hello'/>">Hello World</a></p>` after the h1 tag. Your new index.jsp should look like:
 
 **index.jsp**
 
@@ -174,13 +209,17 @@ First add the taglib directive at the top of the jsp `<%@ taglib prefix="s" uri=
 </html>
 ```
 
-The Struts url tag creates the URL with an action of hello. The hello action was mapped to the `HelloWorldAction` class and its `execute` method. When the user clicks on the above URL it will cause the Struts 2 framework to run the execute method of the `HelloWorldAction` class. After that method returns the String `success` (constant `SUCCESS`), the view page `HelloWorld.jsp` will be rendered.
+The Struts url tag creates the URL with an action of hello. The hello action was mapped to the `HelloWorldAction` class 
+and its `execute` method. When the user clicks on the above URL it will cause the Struts 2 framework to run the execute 
+method of the `HelloWorldAction` class. After that method returns the String `success` (constant `SUCCESS`), the view 
+page `HelloWorld.jsp` will be rendered.
 
 ### Step 6 - Build the WAR File and Run The Application
 
 Execute `mvn jetty:run` to run the application.
 
-Go to this URL [http://localhost:8080/helloworld/index.action](http://localhost:8080/helloworld/index.action) where you should see the following:
+Go to this URL [http://localhost:8080/helloworld/index.action](http://localhost:8080/helloworld/index.action) where you 
+should see the following:
 
 ![helloworld_index_action.png](attachments/helloworld_index_action.png)
 
@@ -192,20 +231,27 @@ Click on the Hello World link and you should get the HelloWorld.jsp page:
 
 Your browser sends to the web server a request for the URL [http://localhost:8080/helloworld/hello.action](http://localhost:8080/helloworld/hello.action).
 
-1. The container receives from the web server a request for the resource `hello.action`. According to the settings loaded from the [web.xml](//struts.apache.org/docs/webxml.html) , the container finds that all requests are being routed to `org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter`, including the `*.action` requests. The StrutsPrepareAndExecuteFilter is the entry point into the framework.
-
-2. 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 `execute` method.
-
-3. The `execute` method creates the MessageStore object and returns `SUCCESS` (=`"success"`). The framework checks the action mapping to see what page to load if `SUCCESS` is returned. The framework tells the container to render as the response to the request, the resource `HelloWorld.jsp`.
-
-4. As the page `HelloWorld.jsp` is being processed, the `<s:property value="messageStore.message" />` tag calls the getter `getMessageStore` of the `HelloWorld` Action and then calls the `getMessage` of the MessageStore object returned by `getMessageStore`. The tag merges the value of the message attribute into the response.
-
+1. The container receives from the web server a request for the resource `hello.action`. According to the settings loaded f
+  rom the [web.xml](../core-developers/web-xml.html), the container finds that all requests are being routed to 
+  `org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter`, including the `*.action` requests. 
+  The `StrutsPrepareAndExecuteFilter` is the entry point into the framework.
+2. 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 `execute` method.
+3. The `execute` method creates the MessageStore object and returns `SUCCESS` (=`"success"`). The framework checks 
+  the action mapping to see what page to load if `SUCCESS` is returned. The framework tells the container to render 
+  as the response to the request, the resource `HelloWorld.jsp`.
+4. As the page `HelloWorld.jsp` is being processed, the `<s:property value="messageStore.message" />` tag calls the getter 
+  `getMessageStore` of the `HelloWorld` Action and then calls the `getMessage` of the MessageStore object returned 
+  by `getMessageStore`. The tag merges the value of the message attribute into the response.
 5. A pure HTML response is sent back to the browser.
 
 ## What to Remember
 
-The framework uses Actions to process HTML forms and other requests. The `Action` class returns a result-name such as `SUCCESS`, `ERROR` or `INPUT`. Based on the mappings loaded from the `struts.xml`, a given result-name may select a page (as in this example), another action, or some other web resource (image, PDF).
+The framework uses Actions to process HTML forms and other requests. The `Action` class returns a result-name such 
+as `SUCCESS`, `ERROR` or `INPUT`. Based on the mappings loaded from the `struts.xml`, a given result-name may select 
+a page (as in this example), another action, or some other web resource (image, PDF).
 
-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.
+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.
 
 |Return to [How to create a Struts 2 web application](how-to-create-a-struts2-web-application.html)|or|onward to [Using Struts 2 Tags](using-tags.html)|
diff --git a/source/getting-started/introducing-interceptors.md b/source/getting-started/introducing-interceptors.md
index af1d83c..f8b1682 100644
--- a/source/getting-started/introducing-interceptors.md
+++ b/source/getting-started/introducing-interceptors.md
@@ -1,52 +1,70 @@
 ---
-layout: getting-started
+layout: default
 title: Introducing Interceptors
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Introducing Interceptors
+{:.no_toc}
 
-The example code for this tutorial, interceptors, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-__Introduction__
+The example code for this tutorial, **interceptors**, is available at [struts-examples](https://github.com/apache/struts-examples)
 
-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 2 f [...]
+## Introduction
 
-1. Handling any exceptions generated
+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 2 framework. For example:
 
+1. Handling any exceptions generated
 2. Converting the String request parameters to the Register class's instance fields where the name values match
-
 3. Calling the validate method and/or the external XML validation
 
 After the execute method is completed more work must be done
 
 1. Handling any exceptions generated
-
 2. Converting the `Register` class's instance fields to String values for display in the view page
-
 3. Forwarding to the correct view page depending on the result String returned by the execute method
 
-
 The above list of tasks are not complete - several other tasks are done before and after the execution of the Action.
 
-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.
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Introducing Interceptors__
+## Introducing Interceptors
 
-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.
+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.
 
-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.
+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.
 
-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 [Understanding Interceptors](//struts.apache.org/docs/interceptors.html) .
+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 [Understanding Interceptors](../core-developers/interceptors.html) .
 
-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 [logger](//struts.apache.org/docs/logger-interceptor.html) and [timer](//st [...]
+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 [logging](../core-developers/logging-interceptor.html) 
+and [timer](../core-developers/timer-interceptor.html) interceptors in addition to the interceptors provided by the default stack.
 
 **Specify Specific Interceptors For An Action**
 
 ```xml
 <action name="register" class="org.apache.struts.register.action.Register" method="execute">
     <interceptor-ref name="timer" />
-    <interceptor-ref name="logger" />
+    <interceptor-ref name="logging" />
     <interceptor-ref name="defaultStack">
         <param name="exception.logEnabled">true</param>
         <param name="exception.logLevel">ERROR</param>
@@ -56,19 +74,31 @@ Sometime the Struts 2 default stack of interceptors are not exactly what you nee
 </action>
 ```
 
-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.
+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.
 
-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.
+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`, `logging`, and `defaultStack` interceptors. The `defaultStack` 
+are all the interceptors normally executed for an Action.
 
-How did I know to use the value of timer for the name attribute and even that there is a timer interceptor? On the [Interceptors](//struts.apache.org/docs/interceptors.html) 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.
+How did I know to use the value of timer for the name attribute and even that there is a timer interceptor? 
+On the [Interceptors](../core-developers/interceptors.html) 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.
 
-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.
+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`.
 
-Note the param nodes. These nodes are used to provide a value to the setLogEnabled and setLogLevel methods of the [Exception Interceptor](//struts.apache.org/docs/exception-interceptor.html) . 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.
+Note the param nodes. These nodes are used to provide a value to the setLogEnabled and setLogLevel methods 
+of the [Exception Interceptor](../core-developers/exception-interceptor.html). 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.
 
-__Run The Example__
+## Run The Example
 
-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:
+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:
 
 ```
 INFO: Starting execution stack for action //register
@@ -78,7 +108,8 @@ Nov 20, 2010 9:55:48 AM com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
 INFO: Executed action /register!execute took 177 ms.
 ```
 
-If you wanted to have the logger and timer interceptors executed for all Actions in a package you would use the following in `struts.xml`:
+If you wanted to have the logger and timer interceptors executed for all Actions in a package you would use 
+the following in `struts.xml`:
 
 **Specify Specific Interceptors For A Package**
 
@@ -87,7 +118,7 @@ If you wanted to have the logger and timer interceptors executed for all Actions
     <interceptors> 
         <interceptor-stack name="appDefault"> 
             <interceptor-ref name="timer" /> 
-            <interceptor-ref name="logger" /> 
+            <interceptor-ref name="logging" /> 
             <interceptor-ref name="defaultStack" /> 
         </interceptor-stack> 
     </interceptors>          
@@ -99,16 +130,25 @@ If you wanted to have the logger and timer interceptors executed for all Actions
 </package> 
 ```
 
-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.
+In the code above we use the interceptors node to define a new stack of interceptors that includes the `timer`, logging`, 
+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 `logging` interceptor will be executed for each Action in this package.
 
-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.
+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 `logging` and `timer` interceptors would have executed.
 
-__Create Your Own Interceptor__
+## Create Your Own Interceptor
 
-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 [Writing Interceptors](//struts.apache.org/docs/writing-interceptors.html) guide explains how to do this. For example, you could create your own interceptor to handle authentication and authorization.
+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 [Writing Interceptors](../core-developers/writing-interceptors.html) guide explains 
+how to do this. For example, you could create your own interceptor to handle authentication and authorization.
 
-__Summary__
+## Summary
 
-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.
+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.
 
 |Return to [Annotations](annotations.html)|or|onward to [Unit Testing](unit-testing.html)|
diff --git a/source/getting-started/message-resource-files.md b/source/getting-started/message-resource-files.md
index a89007a..fc798c5 100644
--- a/source/getting-started/message-resource-files.md
+++ b/source/getting-started/message-resource-files.md
@@ -1,26 +1,43 @@
 ---
-layout: getting-started
+layout: default
 title: Message Resource Files
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Message Resource Files
+{:.no_toc}
 
-This tutorial assumes you've completed the [Form Validation](form-validation.html) tutorial and have a working form_validation project. The example code for this tutorial, message_resource, is available for checkout from the 
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-Struts 2 GitHub repository at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+This tutorial assumes you've completed the [Form Validation](form-validation.html) tutorial and have a working 
+**form_validation** project. The example code for this tutorial, **message_resource**, is available for checkout from the 
+Struts 2 GitHub repository at [struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
-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).
+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).
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Message Resource Property Files__
+## Message Resource Property Files
 
-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.
+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.
 
-If you're doing this tutorial after completing [Form Validation](form-validation.html) then you can make these changes to that tutorial's example application.
+If you're doing this tutorial after completing [Form Validation](form-validation.html) then you can make these changes 
+to that tutorial's example application.
 
-Put the text below in a file named Register.properties in the org.apache.struts.register.action package in the src/resources/java folder.
+Put the text below in a file named Register.properties in the org.apache.struts.register.action package 
+in the `src/resources/java` folder.
 
 **Register.properties**
 
@@ -32,11 +49,15 @@ personBean.email=Email
 thankyou=Thank you for registering %{personBean.firstName}.
 ```
 
-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.
+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.
 
-__Struts 2 Key Attribute__
+## Struts 2 Key Attribute
 
-The Struts 2 key attribute can be used in the [textfield](//struts.apache.org/docs/textfield.html) 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.
+The Struts 2 key attribute can be used in the [textfield](../tag-developers/textfield-tag.html) 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.
 
 If you open register.jsp from the [Form Validation](form-validation.html) tutorial you'll see this Struts 2 textfield tag:
 
@@ -54,9 +75,14 @@ Instead of specifying the name and label attributes you can just use the key att
 <s:textfield key="personBean.firstName"  />
 ```
 
-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.
+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.
 
-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 [Form Validation](form-validation.html) tutorial the link to the register.jsp page is a standard URL.
+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 [Form Validation](form-validation.html) tutorial 
+the link to the `register.jsp` page is a standard URL.
 
 **link to register.jsp**
 
@@ -64,7 +90,8 @@ To enable the key attribute to find the properties file, the display of the view
 <p><a href="register.jsp">Please register</a> for our prize drawing.</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.
+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.
 
 **link to Register Action class**
 
@@ -73,7 +100,8 @@ We need to change the above link so that it goes through the Register.java Strut
 <p><a href="${registerInputLink}">Please register</a> for our prize drawing.</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.
+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`
 
 **registerInput action node for struts.xml**
 
@@ -83,21 +111,30 @@ We use the Struts 2 url tag to create a link to action registerInput. We then us
 </action>
 ```
 
-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.
+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`.
 
-By doing the above the view page register.jsp will have access to the properties defined in `Register.properties`. The Struts 2 framework will make those properties defined in `Register.properties` available to the view page since the view page was rendered after Register.java (the Struts 2 Action class) was executed.
+By doing the above the view page `register.jsp` will have access to the properties defined in `Register.properties`. 
+The Struts 2 framework will make those properties defined in `Register.properties` available to the view page since 
+the view page was rendered after `Register.java` (the Struts 2 Action class) was executed.
 
-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.
+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`.
 
 ![registerInput.png](attachments/att14975007_registerInput.png)
 
-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 `Register.properties` file.
+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 `Register.properties` file.
 
 ![register.png](attachments/att14975006_register.png)
 
-__Struts 2 Text Tag__
+## Struts 2 Text Tag
 
-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.
+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`.
 
 **text tag**
 
@@ -105,11 +142,13 @@ We can also use the Struts 2 text tag to display values from a properties file.
 <h3><s:text name="thankyou" /></h3>
 ```
 
-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.
+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.
 
 ![thankyou.png](attachments/att14975009_thankyou.png)
 
-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.
+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.
 
 **Register.properties**
 
@@ -117,13 +156,17 @@ How did the value entered for the first name input field get displayed on thanky
 thankyou=Thank you for registering %{personBean.firstName}.
 ```
 
-The markup `%{personBean.firstName}` 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).
+The markup `%{personBean.firstName}` 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`).
 
-__Package Level Properties__
+## Package Level Properties
 
-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.
+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.
 
-Place the following in a file named package.properties and save that file in package org.apache.struts in src/main/resources.
+Place the following in a file named `package.properties` and save that file in package `org.apache.struts in src/main/resources`.
 
 **package.properties**
 
@@ -131,7 +174,9 @@ Place the following in a file named package.properties and save that file in pac
 greeting=Welcome to The Wonderful World of Struts 2
 ```
 
-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.
+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.
 
 **Using properties set in package.properties**
 
@@ -139,15 +184,18 @@ Now any view rendered by an Action that is in the hierarchy org.apache.struts...
 <h1><s:text name="greeting" /></h1>
 ```
 
-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:
+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:
 
 ![hellogreeting.png](attachments/att14975005_hellogreeting.png)
 
-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.
+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`.
 
-__Global Properties__
+## Global Properties
 
-You can also specify a global property file in `struts.xml`. 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.
+You can also specify a global property file in `struts.xml`. 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.
 
 Add the following to a file named `global.properties` (note the name doesn't have to be global).
 
@@ -157,9 +205,10 @@ Add the following to a file named `global.properties` (note the name doesn't hav
 contact=For assistance contact <a href='mailto:contact@email.com'>contact@email.com</a>
 ```
 
-Save the global.properties file in the src/main/resources folder.
+Save the `global.properties` file in the `src/main/resources` folder.
 
-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.
+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.
 
 **Specify Global Property File In struts.xml**
 
@@ -167,7 +216,7 @@ To inform the Struts 2 framework about the global.properties file add the follow
 <constant name="struts.custom.i18n.resources" value="global" />
 ```
 
-To use the contact key in a view page, add the following markup to index.jsp just before the closing body tag.
+To use the contact key in a view page, add the following markup to `index.jsp` just before the closing body tag.
 
 **Using contact property**
 
@@ -176,19 +225,26 @@ To use the contact key in a view page, add the following markup to index.jsp jus
 <s:text name="contact" />
 ```
 
-Rebuild the war file, deploy it to your Servlet container, and then go to index.action. You should see:
+Rebuild the war file, deploy it to your Servlet container, and then go to `index.action`. You should see:
 
 ![contact.png](attachments/att14975004_contact.png)
 
-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.
+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.
 
 You can add the text tag above to all the JSPs in this example.
 
-__Internationalization (i18n)__
+## Internationalization (i18n)
 
-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 `Register.properties`). If the locale is not English but say Spanish (es) then Struts 2 will look for a properties file named `Register_es.properties`.
+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 `Register.properties`). If the locale is not English but 
+say Spanish (es) then Struts 2 will look for a properties file named `Register_es.properties`.
 
-To provide an example of Struts 2 support for i18n create a file named `Register_es.properties` and in that file add the following Spanish translations.
+To provide an example of Struts 2 support for i18n create a file named `Register_es.properties` and in that file add 
+the following Spanish translations.
 
 **Register_es.properties**
 
@@ -200,11 +256,12 @@ personBean.email=Correo
 thankyou=Gracias por registrarse, %{personBean.firstName}. 
 ```
 
-| My apologies to Spanish language speakers for any mistakes in the Spanish translations.
+> My apologies to Spanish language speakers for any mistakes in the Spanish translations.
 
 Save the `Register_es.properties` file in the same package as `Register.properties`.
 
-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.
+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.
 
 **Specify The Locale As a URL Parameter**
 
@@ -216,16 +273,24 @@ In our example application, we need to tell Struts 2 to use a locale value of es
 <p><a href="${registerInputLinkES}">Por favor, regístrese</a> para nuestro sorteo</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 `Register_es.properties`). It will use those property files to find the values of the property keys referenced by the view page (e.g. personBean.firstName).
+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 `Register_es.properties`). It will use those property files to find the values of the property 
+keys referenced by the view page (e.g. `personBean.firstName`).
 
 After clicking on the above link you should see the same form as before but with the form field labels in Spanish.
 
 ![spanishform.png](attachments/att14975008_spanishform.png)
 
-If we implement the same concept by creating _es.properties versions of `global.properties` (`global_es.properties`) and `package.properties` (`package_es.properties`) then we can create a complete registration web page in Spanish. Download the finished example application for this tutorial from Google Code - [http://code.google.com/p/struts2-examples/downloads/list](http://code.google.com/p/struts2-examples/downloads/list) to see those property files and run the complete example with th [...]
+If we implement the same concept by creating _es.properties versions of `global.properties` (`global_es.properties`) 
+and `package.properties` (`package_es.properties`) then we can create a complete registration web page in Spanish. 
+Download the finished example application for this tutorial from Github - [message-resource](https://github.com/apache/struts-examples/tree/master/message-resource) 
+to see those property files and run the complete example with the registration form in Spanish.
 
-__Summary__
+## Summary
 
-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 [http://struts.apache.org](http://struts.apache.org).
+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 [http://struts.apache.org](http://struts.apache.org).
 
 |Return to [Form validation](form-validation.html)|or|onward to [Exception handling](exception-handling.html)|
diff --git a/source/getting-started/preperable-interface.md b/source/getting-started/preperable-interface.md
index ea5c639..13fb079 100644
--- a/source/getting-started/preperable-interface.md
+++ b/source/getting-started/preperable-interface.md
@@ -1,30 +1,56 @@
 ---
-layout: getting-started
+layout: default
 title: Preperable Interface
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Preparable Interface
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, preparable_interface, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
+The example code for this tutorial, **preparable_interface**, is available at [struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
-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.
+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.
 
-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.
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Preparable Interface__
+## Preparable Interface
 
-Struts 2 provides the [Preparable interface](http://struts.apache.org/2.3.1/xwork-core/apidocs/com/opensymphony/xwork2/Preparable.html)^[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 [prepare interceptor](//struts.apache.org/docs/prepare-interceptor.html) whenever any me [...]
+Struts 2 provides the [Preparable interface](../maven/struts2-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 [prepare interceptor](../core-developers/prepare-interceptor.html) 
+whenever any method is called for the Action class and also when validation fails before the view is rendered.
 
-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.
+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.
 
-In addition to automatically running the prepare method the [prepare interceptor](//struts.apache.org/docs/prepare-interceptor.html) 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.
+In addition to automatically running the prepare method the [prepare interceptor](../core-developers/prepare-interceptor.html) 
+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.
 
-__Example Application__
+## Example Application
 
-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:
+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:
 
 **EditAction.java prepare Method**
 
@@ -34,12 +60,16 @@ carModelsAvailable = carModelsService.getCarModels();
 setPersonBean(editService.getPerson());
 ```
 
-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.
+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.
 
-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.
+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.
 
-__Summary__
+## Summary
 
-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.
+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.
 
 |Return to [HTTP Session](http-session.html)|or|onward to [Exclude Parameters](exclude-parameters.html)|
diff --git a/source/getting-started/spring.md b/source/getting-started/spring.md
index fa9b0e2..4e535d1 100644
--- a/source/getting-started/spring.md
+++ b/source/getting-started/spring.md
@@ -1,22 +1,36 @@
 ---
-layout: getting-started
+layout: default
 title: Spring
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Spring and Struts 2
+{:.no_toc}
 
-The example code for this tutorial, spring_struts, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-__Introduction__
+The example code for this tutorial, **spring_struts**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
-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 [...]
+## Introduction
 
-> 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 [http://www.springsource.org/documentation](http://www.springsource.org/documentation)
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+> 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 [https://spring.io/docs](https://spring.io/docs)
 
-| 
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-If you examine the example application for the [Struts 2 Themes](#PAGE_23337450) tutorial you'll see this code in the EditAction ActionSupport class
+If you examine the example application for the [Struts 2 Themes](themes.html) tutorial you'll see this code in the 
+`EditAction` class
 
 **EditAction Class Hard-Coded Dependency**
 
@@ -24,13 +38,17 @@ If you examine the example application for the [Struts 2 Themes](#PAGE_23337450)
 private EditService editService = new EditServiceInMemory();
 ```
 
-The above statement hard-codes a dependency between the `EditAction` class and the `EditServiceInMemory` class. This is poor design for two reasons.
-
-1. If I need to replace the `EditServiceInMemory` with another class that implements the `EditService` interface I'll have to hunt down and replace all statements where I hard-coded the dependency.
+The above statement hard-codes a dependency between the `EditAction` class and the `EditServiceInMemory` class. This is 
+poor design for two reasons.
 
-2. I cannot test `EditAction` without using the `EditServiceInMemory` class. I cannot isolate `EditAction` by using a stub implementation of `EditService` when writing my test case because the use of `EditServiceInMemory` is hard-coded.
+1. If I need to replace the `EditServiceInMemory` with another class that implements the `EditService` interface I'll 
+  have to hunt down and replace all statements where I hard-coded the dependency.
+2. I cannot test `EditAction` without using the `EditServiceInMemory` class. I cannot isolate `EditAction` by using 
+  a stub implementation of `EditService` when writing my test case because the use of `EditServiceInMemory` is hard-coded.
 
-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 `EditAction`.
+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 `EditAction`.
 
 **EditAction Class No Hard-Coded Dependency**
 
@@ -40,16 +58,23 @@ private EditService editService;
 
 At run time the Spring framework will provide an object of a class that implements the EditService interface.
 
-__Struts 2 Spring Plugin__
-
-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 [Spring Plugin documentation](//struts.apache.org/docs/spring-plugin.html) for more information about how the plugin works.
+## Struts 2 Spring Plugin
 
-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.
+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 [Spring Plugin documentation](../plugins/spring/) for more information 
+about how the plugin works.
 
+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.
 
-| The current version (`2.5.10.1`) of the Struts 2 Spring plugin has transitive dependencies to the Spring `4.1.6.RELEASE` 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 Sprin [...]
+> The current version (`2.5.10.1`) of the Struts 2 Spring plugin has transitive dependencies to the Spring `4.1.6.RELEASE` 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.
 
-In your `ActionSupport` class you must have a set method for the dependent object that follows standard Java bean naming conventions. If you examine the `EditAction` class for this tutorial's application you'll see this set method.
+In your `ActionSupport` class you must have a set method for the dependent object that follows standard Java bean naming 
+conventions. If you examine the `EditAction` class for this tutorial's application you'll see this set method.
 
 ```java
 public void setEditService(EditService editService) {
@@ -69,11 +94,14 @@ To make our application "Spring aware" we need to add this line to web.xml.
 </listener>
 ```
 
-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).
+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).
 
-__Spring Configuration File__
+## Spring Configuration File
 
-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.
+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`.
 
 **Spring Configuration File**
 
@@ -90,13 +118,20 @@ In the Spring configuration file we create a bean node for those objects we want
 </beans>
 ```
 
-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 [Spring Plugin](//struts.apache.org/docs/spring-plugin.html) documentation for how to change the default autowire method.
+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 [Spring Plugin](../plugins/spring/) 
+documentation for how to change the default autowire method.
 
-The editService bean created by Spring will have a scope of singleton since that is the default scope. Consult section 3.5 of the [Spring documentation](http://www.springsource.org/documentation) for how to configure the bean definition to use a different scope (e.g. request or session).
+The editService bean created by Spring will have a scope of singleton since that is the default scope. Consult section 
+3.5 of the [Spring documentation](https://spring.io/docs) for how to configure the bean definition to use a different 
+scope (e.g. request or session).
 
-__Alternative - Have Spring Manage Creation Of ActionSupport Class__
+## Alternative - Have Spring Manage Creation Of ActionSupport Class
 
-Using the above methodology, the Struts 2 framework will still manage the creation of the `ActionSupport` 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.
+Using the above methodology, the Struts 2 framework will still manage the creation of the `ActionSupport` 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.
 
 **Spring Configuration For ActionSupport Class Managed By Spring**
 
@@ -117,9 +152,13 @@ Using the above methodology, the Struts 2 framework will still manage the creati
 </beans>
 ```
 
-Note in the above that there is an `editAction` bean and its `editService` property is set to the `editService` bean. Since we are having Spring manage the `EditAction` class we must specify any properties of `EditAction` that we want Spring to inject. Please remember that actions must be created on each request, they cannot be `singletons`- this is the default `scope` that's why it must be changed to `prototype`.
+Note in the above that there is an `editAction` bean and its `editService` property is set to the `editService` bean. 
+Since we are having Spring manage the `EditAction` class we must specify any properties of `EditAction` that we want Spring 
+to inject. Please remember that actions must be created on each request, they cannot be `singletons`- this is the default 
+`scope` that's why it must be changed to `prototype`.
 
-In the `struts.xml` 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.
+In the `struts.xml` 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.
 
 **Struts Configuration For Spring Managed ActionSupport Class**
 
@@ -129,8 +168,10 @@ In the `struts.xml` configuration file you must specify the Spring id value for
 </action>
 ```
 
-__Summary__
+## Summary
 
-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.
+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.
 
 |Return to [Themes](themes.html)|or|onward to [Annotations](annotations.html)|
diff --git a/source/getting-started/themes.md b/source/getting-started/themes.md
index 0278351..57daf6e 100644
--- a/source/getting-started/themes.md
+++ b/source/getting-started/themes.md
@@ -1,16 +1,29 @@
 ---
-layout: getting-started
+layout: default
 title: Themes
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Themes
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, themes, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **themes**, is available for checkout at [struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
-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.
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
 For example, this Struts 2 select tag:
 
@@ -39,41 +52,51 @@ generates this HTML markup:
 </tr>
 ```
 
-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.
-
-__Specifying The Theme Struts 2 Should Use__
-
-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 [Themes and Templates Documentation](//struts.apache.org/docs/themes-and-templates.html) . This tutorial will review the xhtml, css_xhtml, and the simple themes. The ajax theme is a special theme used for ajax operations (see [Ajax Theme in  [...]
-
-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:
-
-1. The theme attribute on the specific tag
-
-2. The theme attribute on a tag's surrounding form tag
-
-3. The page-scoped attribute named "theme"
+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 s
+elect tag the default `xhmtl` theme was used.
 
-4. The request-scoped attribute named "theme"
+## Specifying The Theme Struts 2 Should Use
 
-5. The session-scoped attribute named "theme"
+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 [Themes and Templates Documentation](../tag-developers/themes-and-templates.html). This tutorial will review 
+the `xhtml`, `css_xhtml`, and the `simple` themes. The `ajax` theme is a special theme used for ajax operations 
+(see [Ajax Theme in the documentation](../tag-developers/ajax-theme.html)).
 
-6. The application-scoped attribute named "theme"
+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:
 
-7. The `struts.ui.theme` property in `struts.properties` (defaults to xhtml)
+1. The `theme` attribute on the specific tag
+2. The `theme` attribute on a tag's surrounding form tag
+3. The page-scoped attribute named `theme`
+4. The request-scoped attribute named `theme`
+5. The session-scoped attribute named `theme`
+6. The application-scoped attribute named `theme`
+7. The `struts.ui.theme` constant in `struts.xml` (defaults to `xhtml`)
 
-Consult [Selecting Themes](//struts.apache.org/docs/selecting-themes.html) for how to set the theme using the above approaches.
+Consult [Selecting Themes](../tag-developers/selecting-themes.html) for how to set the theme using the above approaches.
 
-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.
+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.
 
-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.
+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.
 
-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.
+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.
 
-__Specifying The CSS Used By The Struts 2 Tag__
+## Specifying The CSS Used By The Struts 2 Tag
 
-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 `s:head` tag to `edit.jsp`.
+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 `s:head` tag to `edit.jsp`.
 
-Load this style sheet in your browser (in the example application the link is [http://localhost:8080/themes/struts/xhtml/styles.css](http://localhost:8080/themes/struts/xhtml/styles.css) if your Servlet container is running on localhost, port 8080). You’ll see the following:
+Load this style sheet in your browser (in the example application the link is [http://localhost:8080/themes/struts/xhtml/styles.css](http://localhost:8080/themes/struts/xhtml/styles.css) 
+if your Servlet container is running on localhost, port 8080). You’ll see the following:
 
 **styles.css**
 
@@ -87,9 +110,11 @@ Load this style sheet in your browser (in the example application the link is [h
 .tdLabel {text-align:right; vertical-align:top; }
 ```
 
-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.
+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.
 
-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 `edit.jsp`.
+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 `edit.jsp`.
 
 **Override Label Style**
 
@@ -101,19 +126,31 @@ You can override the above selectors by including the same selectors in your pag
 
 Now the label tag will render the text in blue, bold, normal (not italics) style.
 
-__Creating And Applying Your Own Themes For Struts 2 Tags__
+## Creating And Applying Your Own Themes For Struts 2 Tags
 
-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.
+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.
 
-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 [http://freemarker.sourceforge.net/](http://freemarker.sourceforge.net/).
+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 [https://freemarker.apache.org/](https://freemarker.apache.org/).
 
-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.
+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.
 
-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.
+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.
 
-In the example application I've extended the default XHMTL theme (see file `theme.properties` 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 want to have a break tag after each labe [...]
+In the example application I've extended the default XHMTL theme (see file `theme.properties` 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 want to have a break tag after each label tag 
+so that each checkbox and its label will be on their own line.
 
-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.
+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.
 
 I then modified the `checkboxlist.ftl` in the KUTheme folder to be:
 
@@ -129,20 +166,36 @@ I then modified the `checkboxlist.ftl` in the KUTheme folder to be:
 
 Be sure to note the change to the second line—using KUTheme_simple in the path.
 
-Then in the example application I created a KUTheme_simple folder under `src/main/resources/template` (optionally you can place it under `webapp`, e.g. `src/main/webapp/template` ). In that folder I created checkboxlist.ftl and copied the contents from `template.simple` `checkboxlist.ftl` (again found in the Struts 2 core jar). After copying the contents to checkboxlist.ftl that is in KUTheme_simple folder, I modified checkboxlist.ftl so that the label tag has a style of red bold text an [...]
+Then in the example application I created a KUTheme_simple folder under `src/main/resources/template` (optionally you 
+can place it under `webapp`, e.g. `src/main/webapp/template` ). In that folder I created `checkboxlist.ftl` and copied 
+the contents from `template.simple` `checkboxlist.ftl` (again found in the Struts 2 core jar). After copying the contents 
+to `checkboxlist.ftl` that is in `KUTheme_simple` folder, I modified `checkboxlist.ftl` 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.
 
-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 `struts.xml` file (src/main/resources) you will see that the I've specified the default theme to be KUTheme.
+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 `struts.xml` file (`src/main/resources`) you will see that the I've specified 
+the default theme to be KUTheme.
 
-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 `checkboxlist.ftl` file that is in the KUTheme_simp [...]
+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 `checkboxlist.ftl` file that is 
+in the KUTheme_simple folder instead of the one in the `template.simple` folder that is part of the Struts 2 core Jar).
 
 After redeploying the application the check boxes for the Car Models Owned should appear like:
 
 ![Screen shot 2010-09-11 at 12.37.12 PM.png](attachments/att23527657_Screen shot 2010-09-11 at 12.37.12 PM.png)
 
-__Summary__
+## Summary
 
-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. `select.ftl`) 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 [...]
+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. `select.ftl`) 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.
 
-To learn more about how to use the Struts 2 themes and how you can override them, visit [Themes and Templates Documentation](//struts.apache.org/docs/themes-and-templates.html) .
+To learn more about how to use the Struts 2 themes and how you can override them, visit [Themes and Templates Documentation](../tag-developers/themes-and-templates.html) .
 
 |Return to [Wildcard method selection](wildcard-method-selection.html)|or|onward to [Spring and Struts 2](spring.html)|
diff --git a/source/getting-started/unit-testing.md b/source/getting-started/unit-testing.md
index d2ee5b2..d1ed92e 100644
--- a/source/getting-started/unit-testing.md
+++ b/source/getting-started/unit-testing.md
@@ -1,30 +1,52 @@
 ---
-layout: getting-started
+layout: default
 title: Unit testing
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Unit Testing
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-The example code for this tutorial, unit_testing, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
+The example code for this tutorial, **unit_testing**, is available at [struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
-Struts 2 supports running unit tests of methods in the Struts Action class with the [Struts 2 JUnit plugin](//struts.apache.org/docs/junit-plugin.html). 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.
+Struts 2 supports running unit tests of methods in the Struts Action class with the [Struts 2 JUnit plugin](../plugins/junit/). 
+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.
 
-The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
+The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Setup__
+## Setup
 
-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.
+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.
 
-__Writing A Unit Test__
+## Writing A Unit Test
 
-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.
+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.
 
-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).
+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).
 
-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 [validate method](form-validation.html) . But the same type of test would work if the validation was done using [XML file validation](form-validation-using-xml.html).
+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 [validate method](form-validation.html) . But the same type of test would work if the validation 
+was done using [XML file validation](form-validation-using-xml.html).
 
-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.
+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.
 
 **struts.xml**
 
@@ -35,15 +57,22 @@ To test the validate method we want Struts to call the Struts action that will c
 </action>
 ```
 
-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.
+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.
 
-__Test Validation Should Pass__
+## Test Validation Should Pass
 
-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.
+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.
 
 ![Screen shot 2012-02-17 at 2.46.54 PM.png](attachments/att28017281_Screen shot 2012-02-17 at 2.46.54 PM.png)
 
-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 request scope.
+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 request scope.
 
 **testExecuteValidationPasses method from RegisterTest class**
 
@@ -66,21 +95,33 @@ public void testExecuteValidationPasses() throws Exception() {
 }
 ```
 
-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.
+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.
 
-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.
+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.
 
-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.
+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.
 
-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.
+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.
 
-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".
+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 `execute` method. In this example, the execute method should return `success`.
 
 So in the next statement, I check that success was returned.
 
-__Test Validation Should Fail__
+## Test Validation Should Fail
 
-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.
+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.
 
 **testExecuteValidationFailsMissingFirstName method from RegisterTest class**
 
@@ -103,10 +144,14 @@ public void testExecuteValidationFailsMissingFirstName() throws Exception() {
 }
 ```
 
-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.
+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.
 
-__Summary__
+## Summary
 
-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 [Testing Actions](//struts.apache.org/docs/testing-actions.html) to learn more.
+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 [Testing Actions](../plugins/junit/) 
+to learn more.
 
 |Return to [Introducing Interceptors](introducing-interceptors.html)|or|onward to [HTTP Session](http-session.html)|
diff --git a/source/getting-started/using-tags.md b/source/getting-started/using-tags.md
index bd1e9ad..3928905 100644
--- a/source/getting-started/using-tags.md
+++ b/source/getting-started/using-tags.md
@@ -1,25 +1,43 @@
 ---
-layout: getting-started
+layout: default
 title: Using tags
+parent:
+    title: Getting started
+    url: index.html
 ---
+
 # Using Tags
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
-This tutorial assumes you've completed the [Hello World](hello-world-using-struts2.html) 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 [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples). The example projects use Maven to manage the artifact dependencies and to build the .war files.
+This tutorial assumes you've completed the [Hello World](hello-world-using-struts2.html) 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 [struts-examples](https://github.com/apache/struts-examples). The example projects use Maven to manage 
+the artifact dependencies and to build the .war files.
 
-In the [Hello World](hello-world-using-struts2.html) lesson, we added a Struts 2 url tag to the `index.jsp` to create a hyperlink to the `hello.action`. This tutorial will explore the url and other Struts 2 tags further.
+In the [Hello World](hello-world-using-struts2.html) lesson, we added a Struts 2 url tag to the `index.jsp` to create 
+a hyperlink to the `hello.action`. This tutorial will explore the url and other Struts 2 tags further.
 
-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.
+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.
 
-To use the Struts 2 tags on the view page, you must include a tag library directive. Typically, the taglib directive is `<%@ taglib prefix="s" uri="/struts-tags" %\>`. So the prefix for all the Struts 2 tags will be "s". 
+To use the Struts 2 tags on the view page, you must include a tag library directive. Typically, the taglib directive 
+is `<%@ taglib prefix="s" uri="/struts-tags" %\>`. So the prefix for all the Struts 2 tags will be `s`. 
 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.
 
 ## Struts 2 url Tag
 
 One use of the Struts 2 Tags is to create links to other web resources, especially to other resources in the local application.
 
-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.
+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.
 
-A very common use case in web applications is linking to other pages. In the [Hello World](hello-world-using-struts2.html) tutorial we added a link to `hello.action` inside the `index.jsp` using the Struts 2 url tag. Please refer to the [url documentation](https://struts.apache.org/docs/url.html) for more information about the url tag.
+A very common use case in web applications is linking to other pages. In the [Hello World](hello-world-using-struts2.html) 
+tutorial we added a link to `hello.action` inside the `index.jsp` using the Struts 2 url tag. Please refer 
+to the [url documentation](../tag-developers/url-tag.html) for more information about the url tag.
 
 **index.jsp**
 
@@ -39,7 +57,8 @@ A very common use case in web applications is linking to other pages. In the [He
 </html>
 ```
 
-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 `hello.action` (relative to the web context's root folder).
+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 `hello.action` (relative to the web context's root folder).
 
 Examine the `struts.xml` configuration in the Hello World tutorial and you will find this:
 
@@ -53,9 +72,11 @@ Examine the `struts.xml` configuration in the Hello World tutorial and you will
 ...
 ```
 
-The action node above maps the `hello.action` to the execute method of class `HelloWorldAction`. If the execute method returns `success`, the view page `HelloWorld.jsp` (in web context root folder) will be returned to the user.
+The action node above maps the `hello.action` to the execute method of class `HelloWorldAction`. If the execute method 
+returns `success`, the view page `HelloWorld.jsp` (in web context root folder) will be returned to the user.
 
-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.
+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.
 
 For the Using Tags tutorial add the following to `index.jsp` just after the link for Hello World.
 
@@ -71,17 +92,23 @@ For the Using Tags tutorial add the following to `index.jsp` just after the link
 ...
 ```
 
-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).
+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).
 
-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.
+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.
 
-Examine the anchor tag above. Notice the value of the href attribute is `${helloLink}`. The view page will substitute the hyperlink we created using the url tag for the `${helloLink}` reference. Note that the query string parameter will be properly URL-encoded (`Bruce+Phillips`).
+Examine the anchor tag above. Notice the value of the href attribute is `${helloLink}`. The view page will substitute 
+the hyperlink we created using the url tag for the `${helloLink}` reference. Note that the query string parameter will 
+be properly URL-encoded (`Bruce+Phillips`).
 
 In the next tutorial we'll cover how Struts can access the query string parameter value.
 
 ## Struts 2 Form Tag
 
-Most applications will use several data entry forms. The Struts 2 tags make creating input forms easy. Consult the [Form Tags Reference](https://struts.apache.org/docs/form-tags.html) for all the details about the Struts 2 form tags.
+Most applications will use several data entry forms. The Struts 2 tags make creating input forms easy. 
+Consult the [Form Tags Reference](../tag-developers/form-tags.html) for all the details about the Struts 2 form tags.
 
 Each of the Struts 2 form tags has numerous attributes to mimic the normal HTML form tag attributes.
 
@@ -100,7 +127,8 @@ Add the following markup to `index.jsp` after the Hello Bruce Phillips link.
 </s:form>
 ```
 
-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:
+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:
 
 ![Struts Form.png](attachments/using_tags_form.png)
 
@@ -126,7 +154,10 @@ The Struts form, textfield, and submit tags were converted to this HTML.
 </form>
 ```
 
-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.
+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.
 
 In the next tutorial we'll cover how to use Struts 2 to process this form submission.
 
@@ -140,11 +171,17 @@ In the [Hello World](hello-world-using-struts2.html) tutorial's example applicat
 <s:property value="messageStore.message" />
 ```
 
-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.
+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.
 
-As discussed in the [Hello World](hello-world-using-struts2.html) tutorial, the value of `messageStore.message` instructs Struts 2 to first call method `getMessageStore` of the Action class. That method call returns a `MessageStore` object. The `.message` part instructs Struts 2 to call the `getMessage` method of the `MessageStore` object. The `getMessage` method returns a String which will be included in the HTML returned to the browser.
+As discussed in the [Hello World](hello-world-using-struts2.html) tutorial, the value of `messageStore.message` instructs 
+Struts 2 to first call method `getMessageStore` of the Action class. That method call returns a `MessageStore` object. 
+The `.message` part instructs Struts 2 to call the `getMessage` method of the `MessageStore` object. The `getMessage` 
+method returns a String which will be included in the HTML returned to the browser.
 
-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 `HelloWorldAction`.
+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 
+`HelloWorldAction`.
 
 **Add Static Field**
 
@@ -156,7 +193,8 @@ public int getHelloCount() {
 }
 ```
 
-Each time the execute method is called we'll increase `helloCount` by 1. So add this code to the `execute` method of the `HelloWorldAction` class.
+Each time the execute method is called we'll increase `helloCount` by 1. So add this code to the `execute` method of the 
+`HelloWorldAction` class.
 
 **Increase helloCount**
 
@@ -164,9 +202,11 @@ Each time the execute method is called we'll increase `helloCount` by 1. So add
 helloCount++;
 ```
 
-Whenever a user clicks one of the links on the page index.jsp (or submits the form), method `execute` of class `HelloWorldAction` will be run and the static field `helloCount` will be increased by 1.
+Whenever a user clicks one of the links on the page index.jsp (or submits the form), method `execute` of class `HelloWorldAction` 
+will be run and the static field `helloCount` will be increased by 1.
 
-To include the value of the `helloCount` attribute in the `HelloWorld.jsp` we can use the Struts 2 property tag. Add the following to `HelloWorld.jsp` after the h2 tag.
+To include the value of the `helloCount` attribute in the `HelloWorld.jsp` we can use the Struts 2 property tag. 
+Add the following to `HelloWorld.jsp` after the h2 tag.
 
 **Use Property Tag To Display helloCount Value**
 
@@ -174,11 +214,15 @@ To include the value of the `helloCount` attribute in the `HelloWorld.jsp` we ca
 <p>I've said hello <s:property value="helloCount" /> times!</p>
 ```
 
-So even though the `getHelloCount` method returns an integer type, Struts 2 converted it to type String and placed it into the body of the p tag.
+So even though the `getHelloCount` method returns an integer type, Struts 2 converted it to type String and placed it 
+into the body of the p tag.
 
-Note that even though `helloCount` is a static field, the get method for `helloCount` is not static. For Struts 2 to call the `getHelloCount` method to get the value of `helloCount`, the `getHelloCount` method cannot be static.
+Note that even though `helloCount` is a static field, the get method for `helloCount` is not static. For Struts 2 to call 
+the `getHelloCount` method to get the value of `helloCount`, the `getHelloCount` method cannot be static.
 
-If the value returned by the get method is an object, then the property tag will cause Struts 2 to call the object's `toString` method. Of course, you should always override Class Object's `toString` method in your model classes. Add the following `toString` method to the `MessageStore` class:
+If the value returned by the get method is an object, then the property tag will cause Struts 2 to call the object's 
+`toString` method. Of course, you should always override Class Object's `toString` method in your model classes. 
+Add the following `toString` method to the `MessageStore` class:
 
 **Add toString Method To Class MessageStore**
 
@@ -196,10 +240,12 @@ Add the following to `HelloWorld.jsp`
 <p><s:property value="messageStore" /></p>
 ```
 
-Since `getMessageStore` of `HelloWorldAction` class returns a `MessageStore` object, Struts 2 will call the `toString` method of class `MessageStore`. The string returned by that `toString` method will be displayed in the browser.
+Since `getMessageStore` of `HelloWorldAction` class returns a `MessageStore` object, Struts 2 will call the `toString` 
+method of class `MessageStore`. The string returned by that `toString` method will be displayed in the browser.
 
 ![using_tags_hello.png](attachments/using_tags_hello.png)
 
-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 [Struts 2 Tag Reference](https://struts.apache.org/docs/tag-reference.html) for much more information about all the Struts 2 tags.
+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 [Struts 2 Tag Reference](../tag-developers/tag-reference.html) for much more information about all the Struts 2 tags.
 
 |Return to [Hello World using Struts 2](hello-world-using-struts2.html)|or|onward to [Coding Struts 2 Actions](coding-actions.html)|

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

[struts-site] 04/05: Adds ToC

Posted by lu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d5cfe24b25cb866855b49ce7dc43cb76c5434d26
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Wed Nov 15 08:38:03 2017 +0100

    Adds ToC
---
 source/getting-started/coding-actions.md             |  4 ++++
 source/getting-started/control-tags.md               | 12 ++++++++----
 source/getting-started/exception-handling.md         | 16 ++++++++++------
 source/getting-started/form-tags.md                  | 20 ++++++++++++--------
 source/getting-started/form-validation-using-xml.md  | 20 ++++++++++++--------
 .../how-to-create-a-struts2-web-application.md       |  5 +++++
 source/getting-started/jasper-reports-tutorial.md    |  4 ++++
 source/getting-started/processing-forms.md           |  4 ++++
 source/getting-started/wildcard-method-selection.md  | 14 +++++++++-----
 9 files changed, 68 insertions(+), 31 deletions(-)

diff --git a/source/getting-started/coding-actions.md b/source/getting-started/coding-actions.md
index cd45a74..ccc83ea 100644
--- a/source/getting-started/coding-actions.md
+++ b/source/getting-started/coding-actions.md
@@ -7,6 +7,10 @@ parent:
 ---
 
 # Coding actions
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 This tutorial assumes you've completed the [Using Struts 2 Tags](using-tags.html) 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: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
 
diff --git a/source/getting-started/control-tags.md b/source/getting-started/control-tags.md
index a8bf1cf..f33a799 100644
--- a/source/getting-started/control-tags.md
+++ b/source/getting-started/control-tags.md
@@ -7,16 +7,20 @@ parent:
 ---
 
 # Control Tags
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The example code for this tutorial, control_tags, is available at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
 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 [tags reference](http://cwiki.apache.org/confluence/display/WW/Generic+Tag+Reference).
 
 The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Struts 2 if Tag__
+## Struts 2 if Tag
 
 In the example application's thankyou.jsp is this markup.
 
@@ -48,7 +52,7 @@ The value of the test attribute must be an expression that evaluates to true or
 
 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".
 
-__Struts iterator Tag__
+## Struts iterator Tag
 
 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.
 
@@ -78,7 +82,7 @@ If the collection contains objects that have multiple fields, then you should us
 
 The value of the iterator tag is states, which causes the Struts 2 framework to call the getStates method of the Action class (`EditAction.java`). 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 current State object and will call getState [...]
 
-__Additional Iterator Attributes__
+## Additional Iterator Attributes
 
 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 [iterator tag reference](https://cwiki.apache.org/confluence/display/WW/iterator) for more information.
 
diff --git a/source/getting-started/exception-handling.md b/source/getting-started/exception-handling.md
index b7f67af..41292ee 100644
--- a/source/getting-started/exception-handling.md
+++ b/source/getting-started/exception-handling.md
@@ -7,16 +7,20 @@ parent:
 ---
 
 # Exception Handling
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The code for this tutorial, exception_handling, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
 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.
 
 The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Global Exception Handling__
+## Global Exception Handling
 
 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.
 
@@ -38,7 +42,7 @@ The global exception mapping node tells the Struts 2 framework what to do if an
 
 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.
 
-__Exception Handling Per Action__
+## Exception Handling Per Action
 
 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.
 
@@ -54,7 +58,7 @@ The above action node from the example application's struts.xml file specifies t
 
 You can see that an action-specific exception mapping will take precedence if the same exception is also mapped globally.
 
-__Logging Exceptions__
+## Logging Exceptions
 
 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 [ExceptionMappingInterceptor class API](https://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.html) there are three parameter values you can set to enable logging (logEnabled), the log level to use (logLevel [...]
 
@@ -81,7 +85,7 @@ Now when the application throws an uncaught exception, the Struts 2 framework wi
 
 In the example applications, the logging is just to the Servlet container's console (see the `log4j.xml` file for the log settings).
 
-__Display Exception Information In Browser__
+## Display Exception Information In Browser
 
 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.
 
@@ -97,7 +101,7 @@ You can display information about the exception in the browser if you want by us
 
 When the exception interceptor is triggered it adds to the fields available for display the exception message and the exception's stack trace.
 
-__Summary__
+## Summary
 
 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.
 
diff --git a/source/getting-started/form-tags.md b/source/getting-started/form-tags.md
index b1ef021..8888ad8 100644
--- a/source/getting-started/form-tags.md
+++ b/source/getting-started/form-tags.md
@@ -7,10 +7,14 @@ parent:
 ---
 
 # Form Tags
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The example code for this tutorial, form_tags, can be checked out from [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
 
-__Introduction__
+## Introduction
 
 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 ([Processing forms](processing-forms.html), [Form validation](form-validation.html), 
@@ -22,7 +26,7 @@ The [Struts 2 user mailing list](http://struts.apache.org/mail.html) is an excel
 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.
 
-__Example Application__
+## Example Application
 
 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 
@@ -39,7 +43,7 @@ of the Person object.
 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.
 
-__Struts 2 Select Tag__
+## Struts 2 Select Tag
 
 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.
@@ -95,7 +99,7 @@ head section.
 
 Since the personBean's getSport method returns "baskeball", the basketball option value is marked as selected.
 
-__Struts 2 Radio Tag__
+## Struts 2 Radio Tag
 
 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.
@@ -134,7 +138,7 @@ The Array of String objects returned are used to create the individual radio but
 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.
 
-__Struts 2 Select Tag - Object Backed__
+## Struts 2 Select Tag - Object Backed
 
 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 
@@ -177,7 +181,7 @@ The value returned by calling the personBean object's getResidency method determ
 tags is marked as selected. In our example, since getResidency returns "KS", the option tag whose value attribute 
 equals "KS" is marked as selected.
 
-__Struts 2 Checkbox Tag__
+## Struts 2 Checkbox Tag
 
 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 
@@ -216,7 +220,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.
 
-__Struts 2 checkboxlist Tag__
+## Struts 2 checkboxlist Tag
 
 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 
@@ -266,7 +270,7 @@ the checkbox will be checked.
 </tr>
 ```
 
-__Summary__
+## Summary
 
 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 [http://struts.apache.org](http://struts.apache.org).
diff --git a/source/getting-started/form-validation-using-xml.md b/source/getting-started/form-validation-using-xml.md
index 41180c1..268bfe8 100644
--- a/source/getting-started/form-validation-using-xml.md
+++ b/source/getting-started/form-validation-using-xml.md
@@ -7,16 +7,20 @@ parent:
 ---
 
 # Form Validation Using XML
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The example code for this tutorial, form_xml_validation, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
 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 [Form Validation](form-validation.html) 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.
 
 The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Example Application__
+## Example Application
 
 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.
 
@@ -26,7 +30,7 @@ To enable the user to edit his information that is stored in the Person object,
 
 When the user submits the form, we want to validate his entries into the form fields.
 
-__Validation Using XML__
+## Validation Using XML
 
 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).
 
@@ -34,7 +38,7 @@ Struts 2 provides several different validators that you can use in the XML valid
 
 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 [requiredstring validator](../core-developers/requiredstring-validator.html). This validator checks that the user has entered a string value in the form field.
 
-__XML Validator Format__
+## XML Validator Format
 
 In the XML validation file (for this example that is EditAction-validation.xml), is this XML:
 
@@ -59,7 +63,7 @@ For example if the user doesn't enter a value in the first name form field and c
 
 ![form-validation-2.png](attachments/att20873264_form-validation-2.png)
 
-__Validating An Email Address__
+## Validating An Email Address
 
 You can use the Struts 2 [email validator](../core-developers/email-validator.html) to validate the user's input in the email field. Here is the validator node that is in the `EditAction-validation.xml` file.
 
@@ -78,7 +82,7 @@ You can use the Struts 2 [email validator](../core-developers/email-validator.ht
 
 Note that in the example, we are requiring the user to enter an email address and then validating the email address the user entered.
 
-__Validating A User's Input Using A Regular Expression__
+## Validating A User's Input Using A Regular Expression
 
 The Struts 2 framework provides a powerful way to validate a user's form field input by using the [regex validator](../core-developers/regex-validator.html) . 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 [regex validator](../core-developers/regex-validator.html) to enforce this rule.
 
@@ -98,7 +102,7 @@ The Struts 2 framework provides a powerful way to validate a user's form field i
 
 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.
 
-__Validating A User's Input Using An OGNL Expression__
+## Validating A User's Input Using An OGNL Expression
 
 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 [fieldexpression validator](../core-developers/fieldexpression-validator.html) . Here's the XML for that validator node.
 
@@ -122,7 +126,7 @@ If the user did not check any of the check boxes, the Array returned by the getC
 
 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.
 
-__Summary__
+## Summary
 
 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.
 
diff --git a/source/getting-started/how-to-create-a-struts2-web-application.md b/source/getting-started/how-to-create-a-struts2-web-application.md
index 997ffa4..bb48478 100644
--- a/source/getting-started/how-to-create-a-struts2-web-application.md
+++ b/source/getting-started/how-to-create-a-struts2-web-application.md
@@ -5,7 +5,12 @@ parent:
     title: Getting started
     url: index.html
 ---
+
 # How To Create A Struts 2 Web Application
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 This tutorial walks through installing the framework and creating a simple application.
 
diff --git a/source/getting-started/jasper-reports-tutorial.md b/source/getting-started/jasper-reports-tutorial.md
index 8c5bf86..b349420 100644
--- a/source/getting-started/jasper-reports-tutorial.md
+++ b/source/getting-started/jasper-reports-tutorial.md
@@ -7,6 +7,10 @@ parent:
 ---
 
 # JasperReports Tutorial
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The Struts 2 JasperReports plugin is a bridge from Struts 2 to JasperReports and does not include JasperReports itself, 
 which must be downloaded separately.
diff --git a/source/getting-started/processing-forms.md b/source/getting-started/processing-forms.md
index 8d3ffe3..b81c452 100644
--- a/source/getting-started/processing-forms.md
+++ b/source/getting-started/processing-forms.md
@@ -7,6 +7,10 @@ parent:
 ---
 
 # Processing Forms
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 This tutorial assumes you've completed the [Coding Struts 2 Actions](coding-actions.html) tutorial and have a working 
 coding-actions project. The example code for this tutorial, form-processing, is available for checkout from 
diff --git a/source/getting-started/wildcard-method-selection.md b/source/getting-started/wildcard-method-selection.md
index 44e1bcd..841a4c7 100644
--- a/source/getting-started/wildcard-method-selection.md
+++ b/source/getting-started/wildcard-method-selection.md
@@ -7,22 +7,26 @@ parent:
 ---
 
 # Wildcard Method Selection
+{:.no_toc}
+
+* Will be replaced with the ToC, excluding a header
+{:toc}
 
 The example code for this tutorial, wildcard_method_selection, is available for checkout at [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples)
 
-__Introduction__
+## Introduction
 
 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.
 
 The [Struts 2 user mailing list](http://struts.apache.org/mail.html) 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.
 
-__Example Application__
+## Example Application
 
 ![Screen shot 2010-05-30 at 8.51.40 AM.png](attachments/att21921805_Screen shot 2010-05-30 at 8.51.40 AM.png)
 
 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 `Person` (the model class) is controlled by the Struts 2 `ActionSupport` class `PersonAction`. The `PersonAction` class has several different methods (e.g. create, edit, delete) that  [...]
 
-__Wildcard Method Selection__
+## Wildcard Method Selection
 
 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:
 
@@ -69,13 +73,13 @@ What happens if we have a URL with nothing in front of Person? For example:
 
 If there is no value in front of Person, then the Struts 2 framework will call the execute method of the class `PersonAction`.
 
-__Dynamic Method Invocation__
+## Dynamic Method Invocation
 
 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, `!`, 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.
 
 The Struts 2 documentation also recommends turning off the option to use the dynamic method invocation by setting `struts.enable.DynamicMethodInvocation` to `FALSE` in the Struts configuration.
 
-__Summary__
+## Summary
 
 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.
 

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