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/04/18 05:38:33 UTC

[1/5] struts-site git commit: Adds back and forth navigation links

Repository: struts-site
Updated Branches:
  refs/heads/master 2423050b6 -> b93572c86


Adds back and forth navigation links


Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/ccdbffb9
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/ccdbffb9
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/ccdbffb9

Branch: refs/heads/master
Commit: ccdbffb90b3f940abccb7b269d3879c3f0deeff0
Parents: 2423050
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Wed Apr 12 09:47:42 2017 +0200
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Wed Apr 12 09:47:42 2017 +0200

----------------------------------------------------------------------
 source/getting-started/annotations.md           |   2 +
 source/getting-started/coding-actions.md        |   1 +
 source/getting-started/control-tags.md          |   2 +
 source/getting-started/debugging-struts.md      |   4 +-
 source/getting-started/exception-handling.md    |   2 +
 source/getting-started/exclude-parameters.md    |   2 +
 source/getting-started/form-tags.md             | 223 +++++++++++++------
 .../form-validation-using-xml.md                |   2 +
 source/getting-started/form-validation.md       |   2 +
 .../hello-world-using-struts2.md                |   2 +
 .../how-to-create-a-struts2-web-application.md  |   2 +
 source/getting-started/http-session.md          |   2 +
 .../getting-started/introducing-interceptors.md |   2 +
 .../getting-started/message-resource-files.md   |   2 +
 source/getting-started/preperable-interface.md  |   2 +
 source/getting-started/processing-forms.md      |   2 +
 source/getting-started/spring.md                |   2 +
 source/getting-started/themes.md                |   2 +
 source/getting-started/unit-testing.md          |   2 +
 source/getting-started/using-tags.md            |   2 +
 .../wildcard-method-selection.md                |   2 +
 21 files changed, 189 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/annotations.md
----------------------------------------------------------------------
diff --git a/source/getting-started/annotations.md b/source/getting-started/annotations.md
index 67c2b29..2ba1234 100644
--- a/source/getting-started/annotations.md
+++ b/source/getting-started/annotations.md
@@ -92,3 +92,5 @@ When we don't use a struts.xml file, we can set the value of these Struts 2 para
 __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 Struts 2 application.
+
+|Return to [Spring and Struts 2](spring.html)|or|onward to [Introducing Interceptors](introducing-interceptors.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/coding-actions.md
----------------------------------------------------------------------
diff --git a/source/getting-started/coding-actions.md b/source/getting-started/coding-actions.md
index 8922e96..a277d39 100644
--- a/source/getting-started/coding-actions.md
+++ b/source/getting-started/coding-actions.md
@@ -116,3 +116,4 @@ __Summary__
 
 This tutorial introduced you to how to code the Action class so it can process user input on a form or values in a query string parameter. If the form had numerous fields, it would be cumbersome to have a set method that matches up with each form field. So our next tutorial will cover how to integrate a model class, form fields in the view and form processing in the Action class.
 
+|Return to [Using Struts 2 Tags](using-tags.html)|or|onward to [Processing Forms](processing-forms.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/control-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/control-tags.md b/source/getting-started/control-tags.md
index edcc083..d7fcb3a 100644
--- a/source/getting-started/control-tags.md
+++ b/source/getting-started/control-tags.md
@@ -77,3 +77,5 @@ The value of the iterator tag is states, which causes the Struts 2 framework to
 __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.
+
+|Return to [Form validation using XML](form-validation-using-xml.md)|or|onward to [Wildcard method selection](wildcard-method-selection.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/debugging-struts.md
----------------------------------------------------------------------
diff --git a/source/getting-started/debugging-struts.md b/source/getting-started/debugging-struts.md
index 9c38375..e28854a 100644
--- a/source/getting-started/debugging-struts.md
+++ b/source/getting-started/debugging-struts.md
@@ -19,7 +19,7 @@ The Struts 2 config browser plugin provides details about the configuration the
 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>
+<a href='<s:url action="index" namespace="config-browser" />'>Launch the configuration browser</a>
 ```
 
 In the example application, there is a link to the configuration browser on the index.jsp page.
@@ -57,3 +57,5 @@ __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.
 
 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)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/exception-handling.md
----------------------------------------------------------------------
diff --git a/source/getting-started/exception-handling.md b/source/getting-started/exception-handling.md
index 6a08993..ac34450 100644
--- a/source/getting-started/exception-handling.md
+++ b/source/getting-started/exception-handling.md
@@ -96,3 +96,5 @@ When the exception interceptor is triggered it adds to the fields available for
 __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.
+
+|Return to [Message resource files](message-resource-files.html)|or|onward to [Debugging Struts](debugging-struts.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/exclude-parameters.md
----------------------------------------------------------------------
diff --git a/source/getting-started/exclude-parameters.md b/source/getting-started/exclude-parameters.md
index 1b87a31..4d23bcb 100644
--- a/source/getting-started/exclude-parameters.md
+++ b/source/getting-started/exclude-parameters.md
@@ -84,3 +84,5 @@ To see the log messages written when not excluding the submit parameter remove t
 __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-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)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/form-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-tags.md b/source/getting-started/form-tags.md
index baa7bcc..f64f56b 100644
--- a/source/getting-started/form-tags.md
+++ b/source/getting-started/form-tags.md
@@ -8,25 +8,37 @@ The example code for this tutorial, form_tags, can be checked out from [https://
 
 __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) , and [Message Resource Files](message-resource-files.html) ) we covered how to use the Struts 2 head, form, textfield controls and the key attribute. This tutorial will explore using the Struts 2 select, radio, checkbox, and checkboxlist form controls.
+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), 
+and [Message resource files](message-resource-files.html) ) we covered how to use the Struts 2 head, form, textfield 
+controls and the key attribute. This tutorial will explore using the Struts 2 select, radio, checkbox, and checkboxlist 
+form controls.
 
-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.
 
 __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 these things: first name, last name, favorite sport, gender, state of residency, is or is not over 21, and car models owned.
+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 
+these things: first name, last name, favorite sport, gender, state of residency, is or is not over 21, and car models 
+owned.
 
 To enable the user to edit his information that is stored in the Person object, we need to create a form like this one:
 
 ![Screen shot 2010-04-25 at 8.39.59 AM.png](attachments/att19660802_Screen shot 2010-04-25 at 8.39.59 AM.png)
 
-The form allows the user to make changes. After submitting the form, the Struts 2 framework will update the state of the Person object.
+The form allows the user to make changes. After submitting the form, the Struts 2 framework will update the state 
+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.
+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__
 
-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.
+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.
 
 **Struts 2 Select Tag**
 
@@ -34,13 +46,25 @@ A user can select one favorite sport from several choices. The example applicati
 <s:select key="personBean.sport" list="sports" />
 ```
 
-In these form tags, we are using the key attribute as discussed in the [Message Resource Files](message-resource-files.html) tutorial. The key attribute is used by the Struts 2 framework to determine values for the other attributes (e.g. label and value). We are also using a property file associated with the EditAction class to provide the label values based on the key attribute value (see the [Message Resource Files](message-resource-files.html) tutorial for information on using Struts 2 property files).
+In these form tags, we are using the key attribute as discussed in the [Message resource files](message-resource-files.html)
+tutorial. The key attribute is used by the Struts 2 framework to determine values for the other attributes (e.g. label 
+and value). We are also using a property file associated with the EditAction class to provide the label values based on 
+the key attribute value (see the [Message Resource Files](message-resource-files.html) tutorial for information on using 
+Struts 2 property files).
 
-> Note that there are many attributes for the Struts 2 form tags, most of which mirror the HTML attributes associated with the tags. You can read about all the attributes for a Struts 2 form tag by consulting the Struts 2 documentation.
+> Note that there are many attributes for the Struts 2 form tags, most of which mirror the HTML attributes associated 
+> with the tags. You can read about all the attributes for a Struts 2 form tag by consulting the Struts 2 documentation.
 
-The value of the list attribute of the Struts 2 select tag is used by the framework to determine what method of the action class to call in order to create the option values. In our example application, the list attribute value of "sports" results in the framework calling the getSports method of class EditAction. That method returns a String array containing "football", "baseball", and "basketball". Those values are used to create the option tags inside the select tag.
+The value of the list attribute of the Struts 2 select tag is used by the framework to determine what method 
+of the action class to call in order to create the option values. In our example application, the list attribute 
+value of "sports" results in the framework calling the getSports method of class EditAction. That method returns 
+a String array containing "football", "baseball", and "basketball". Those values are used to create the option tags 
+inside the select tag.
 
-The Struts 2 framework determines which option is preselected by using the key attribute's value to call a method on the personBean object. Since the key attribute's value is "personBean.sport", the framework calls the personBean object's getSport method. If the value returned by that method matches one of the option values, that option will be marked as "selected".
+The Struts 2 framework determines which option is preselected by using the key attribute's value to call a method 
+on the personBean object. Since the key attribute's value is "personBean.sport", the framework calls the personBean 
+object's getSport method. If the value returned by that method matches one of the option values, that option will be 
+marked as "selected".
 
 Here is the HTML that results from using the above Struts 2 select tag.
 
@@ -48,26 +72,29 @@ Here is the HTML that results from using the above Struts 2 select tag.
 
 ```html
 <tr>
-<td class="tdLabel">
-<label for="save_personBean_sport" class="label">Favorite sport:</label>
-</td>
-<td>
-<select name="personBean.sport" id="save_personBean_sport">
-    <option value="football">football</option>
-    <option value="baseball">baseball</option>
-    <option value="basketball" selected="selected">basketball</option>
-</select>
-</td>
+  <td class="tdLabel">
+    <label for="save_personBean_sport" class="label">Favorite sport:</label>
+  </td>
+  <td>
+    <select name="personBean.sport" id="save_personBean_sport">
+      <option value="football">football</option>
+      <option value="baseball">baseball</option>
+      <option value="basketball" selected="selected">basketball</option>
+    </select>
+  </td>
 </tr>
 ```
 
-Note the table formatting created by the Struts 2 framework when using the Struts 2 select tag. The CSS classes are defined in style sheets included by the Struts 2 s:head tag. The Struts 2 s:head tag is placed inside the edit.jsp's head section.
+Note the table formatting created by the Struts 2 framework when using the Struts 2 select tag. The CSS classes are 
+defined in style sheets included by the Struts 2 s:head tag. The Struts 2 s:head tag is placed inside the edit.jsp's 
+head section.
 
 Since the personBean's getSport method returns "baskeball", the basketball option value is marked as selected.
 
 __Struts 2 Radio Tag__
 
-The Struts 2 radio tag\u2014like its standard HTML counterpart\u2014is 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.
+The Struts 2 radio tag\u2014like its standard HTML counterpart\u2014is 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.
 
 **Struts 2 Radio Tag**
 
@@ -75,27 +102,40 @@ The Struts 2 radio tag\u2014like its standard HTML counterpart\u2014is used to display
 <s:radio key="personBean.gender" list="genders" />
 ```
 
-Again the key attribute's value determines the value for the label and value attributes. The label's text is derived from the EditAction.properties file (key personBean.gender). Just like the Struts 2 select tag, the list attribute of the Struts 2 radio tag causes the framework to call the getGenders method of the EditAction class. The Array of String objects returned are used to create the individual radio buttons.
+Again the key attribute's value determines the value for the label and value attributes. The label's text is derived 
+from the EditAction.properties file (key personBean.gender). Just like the Struts 2 select tag, the list attribute 
+of the Struts 2 radio tag causes the framework to call the getGenders method of the EditAction class. 
+The Array of String objects returned are used to create the individual radio buttons.
 
 **HTML Created By Struts 2 Radio Tag**
 
 ```html
 <tr>
-<td class="tdLabel">
-<label for="save_personBean_gender" class="label">Gender:</label></td>
-<td>
-<input type="radio" name="personBean.gender" id="save_personBean_gendermale" value="male"/><label for="save_personBean_gendermale">male</label>
-<input type="radio" name="personBean.gender" id="save_personBean_genderfemale" value="female"/><label for="save_personBean_genderfemale">female</label>
-<input type="radio" name="personBean.gender" id="save_personBean_gendernot sure" checked="checked" value="not sure"/><label for="save_personBean_gendernot sure">not sure</label>
-</td>
+  <td class="tdLabel">
+    <label for="save_personBean_gender" class="label">Gender:</label>
+  </td>
+  <td>
+    <input type="radio" name="personBean.gender" id="save_personBean_gendermale" value="male"/>
+    <label for="save_personBean_gendermale">male</label>
+    
+    <input type="radio" name="personBean.gender" id="save_personBean_genderfemale" value="female"/>
+    <label for="save_personBean_genderfemale">female</label>
+    
+    <input type="radio" name="personBean.gender" id="save_personBean_gendernot sure" checked="checked" value="not sure"/>
+    <label for="save_personBean_gendernot sure">not sure</label>
+  </td>
 </tr>
 ```
 
-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.
+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__
 
-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 abbreviation (e.g. KS), but the form select box should display the full state name (e.g. Kansas). To create such a select box in Struts 2, you would use this code
+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 
+abbreviation (e.g. KS), but the form select box should display the full state name (e.g. Kansas). To create such 
+a select box in Struts 2, you would use this code
 
 **Struts 2 Select Tag Object Backed**
 
@@ -103,33 +143,42 @@ You may need to create a Struts 2 select tag where the options displayed to the
 <s:select key="personBean.residency" list="states" listKey="stateAbbr" listValue="stateName" />
 ```
 
-The list value tells the framework to call the getStates method of the EditAction class. That method returns an ArrayList of State objects. Each State object has getStateAbbr and getStateName methods.
+The list value tells the framework to call the getStates method of the EditAction class. That method returns 
+an ArrayList of State objects. Each State object has getStateAbbr and getStateName methods.
 
-The listKey attribute tells the framework to use the value returned by calling the getStateAbbr method as the value for the value attribute of the HTML option tag and the value returned by calling the getStateName method as the value displayed to the user. So the above Struts 2 select tag code results in this HTML.
+The listKey attribute tells the framework to use the value returned by calling the getStateAbbr method as the value for
+the value attribute of the HTML option tag and the value returned by calling the getStateName method as the value 
+displayed to the user. So the above Struts 2 select tag code results in this HTML.
 
 **HTML Created By Struts 2 Select Tag**
 
 ```html
 <tr>
-<td class="tdLabel">
-<label for="save_personBean_residency" class="label">State resident:</label></td>
-<td>
-<select name="personBean.residency" id="save_personBean_residency">
-    <option value="AZ">Arizona</option>
-    <option value="CA">California</option>
-    <option value="FL">Florida</option>
-    <option value="KS" selected="selected">Kansas</option>
-    <option value="NY">New York</option>
-</select>
-</td>
+  <td class="tdLabel">
+    <label for="save_personBean_residency" class="label">State resident:</label>
+  </td>
+  <td>
+    <select name="personBean.residency" id="save_personBean_residency">
+      <option value="AZ">Arizona</option>
+      <option value="CA">California</option>
+      <option value="FL">Florida</option>
+      <option value="KS" selected="selected">Kansas</option>
+      <option value="NY">New York</option>
+    </select>
+  </td>
 </tr>
 ```
 
-The value returned by calling the personBean object's getResidency method determines which of the select tag's option tags is marked as selected. In our example, since getResidency returns "KS", the option tag whose value attribute equals "KS" is marked as selected.
+The value returned by calling the personBean object's getResidency method determines which of the select tag's option 
+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__
 
-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 return a Boolean value (true or false). A return value of true will cause the checkbox to be checked and false the checkbox will not be checked.
+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 
+return a Boolean value (true or false). A return value of true will cause the checkbox to be checked and false 
+the checkbox will not be checked.
 
 **Struts 2 Checkbox Tag**
 
@@ -143,24 +192,34 @@ Since the method getOver21 returns true, the checkbox is checked.
 
 ```html
 <tr>
-<td valign="top" align="right">
-</td>
-<td valign="top" align="left">
-<input type="checkbox" name="personBean.over21" value="true" checked="checked" id="save_personBean_over21"/>
-<input type="hidden" id="__checkbox_save_personBean_over21" name="__checkbox_personBean.over21" value="true" />  <label for="save_personBean_over21" class="checkboxLabel">21 or older</label>
-</td>
+  <td valign="top" align="right"></td>
+  <td valign="top" align="left">
+    <input type="checkbox" name="personBean.over21" value="true" checked="checked" id="save_personBean_over21"/>
+    <input type="hidden" id="__checkbox_save_personBean_over21" name="__checkbox_personBean.over21" value="true" />
+    <label for="save_personBean_over21" class="checkboxLabel">21 or older</label>
+  </td>
 </tr>
 ```
 
-When the form is submitted and the checkbox is not checked, no value will be posted for the checkbox (this is how HTML forms work). Since the Struts 2 framework will need to update the value of the personBean's over21 instance field to false\u2014given that the check box was not checked\u2014the framework needs a way to determine if the checkbox was not checked after form submission.
+When the form is submitted and the checkbox is not checked, no value will be posted for the checkbox (this is how HTML 
+forms work). Since the Struts 2 framework will need to update the value of the personBean's over21 instance field 
+to false\u2014given that the check box was not checked\u2014the framework needs a way to determine if the checkbox was not checked 
+after form submission.
 
-If you examine the HTML code created by the Struts 2 checkbox tag, you'll see that it created a hidden field associated with the personBean.over21 checkbox. When the Struts 2 framework intercepts the submission of this form it will use this hidden form field to check if the associated checkbox field exists in the posted form data. If that checkbox field doesn't exist then the Struts 2 framework will know to update the value of the personBean object's over21 instance variable to false.
+If you examine the HTML code created by the Struts 2 checkbox tag, you'll see that it created a hidden field associated
+with the personBean.over21 checkbox. When the Struts 2 framework intercepts the submission of this form it will use this
+hidden form field to check if the associated checkbox field exists in the posted form data. If that checkbox field 
+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__
 
-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 car models owned by a person.
+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 
+car models owned by a person.
 
-Using the Struts 2 checkbox tag, we can create a series of checkboxes, one for each possible car model the user may own. The value of each String in the personBean's carModels Array will determine which checkboxes are checked.
+Using the Struts 2 checkbox tag, we can create a series of checkboxes, one for each possible car model the user may own.
+The value of each String in the personBean's carModels Array will determine which checkboxes are checked.
 
 **Struts 2 Checkboxlist Tag**
 
@@ -168,29 +227,45 @@ Using the Struts 2 checkbox tag, we can create a series of checkboxes, one for e
 <s:checkboxlist key="personBean.carModels" list="carModelsAvailable" />
 ```
 
-The list attributes value in the checkboxlist tag tells the Struts 2 framework which method to call to get the possible car models. In the example application, the framework will call the EditAction class's getCarModelsAvailable method. That method returns an Array of Strings. For each element of the Array, the Struts 2 framework creates a checkbox (including the associated hidden field described above).
+The list attributes value in the checkboxlist tag tells the Struts 2 framework which method to call to get the possible
+car models. In the example application, the framework will call the EditAction class's getCarModelsAvailable method. 
+That method returns an Array of Strings. For each element of the Array, the Struts 2 framework creates a checkbox 
+(including the associated hidden field described above).
 
-The key attribute value in the checkboxlist tag tells the Struts 2 framework which method to call on the personBean object to determine which checkboxes should be checked. In the example application, the framework will call the personBean object's getCarModels method. The getCarModels method returns an Array of Strings. For each String value in that Array that matches a String value in the Array returned by the EditAction class's getCarModelsAvailable, the checkbox will be checked.
+The key attribute value in the checkboxlist tag tells the Struts 2 framework which method to call on the personBean 
+object to determine which checkboxes should be checked. In the example application, the framework will call 
+the personBean object's getCarModels method. The getCarModels method returns an Array of Strings. For each String value 
+in that Array that matches a String value in the Array returned by the EditAction class's getCarModelsAvailable, 
+the checkbox will be checked.
 
 **HTML Created By Struts 2 Checkboxlist Tag**
 
 ```html
 <tr>
-<td class="tdLabel">
-<label for="save_personBean_carModels" class="label">Car models owned:</label></td>
-<td>
-<input type="checkbox" name="personBean.carModels" value="Ford" id="personBean.carModels-1" checked="checked"/>
-<label for="personBean.carModels-1" class="checkboxLabel">Ford</label>
-<input type="checkbox" name="personBean.carModels" value="Chrysler" id="personBean.carModels-2"/>
-<label for="personBean.carModels-2" class="checkboxLabel">Chrysler</label>
-<input type="checkbox" name="personBean.carModels" value="Toyota" id="personBean.carModels-3"/>
-<label for="personBean.carModels-3" class="checkboxLabel">Toyota</label>
-<input type="checkbox" name="personBean.carModels" value="Nissan" id="personBean.carModels-4" checked="checked"/>
-<label for="personBean.carModels-4" class="checkboxLabel">Nissan</label>
-<input type="hidden" id="__multiselect_save_personBean_carModels" name="__multiselect_personBean.carModels" value="" />
-</td>
+  <td class="tdLabel">
+    <label for="save_personBean_carModels" class="label">Car models owned:</label>
+  </td>
+  <td>
+    <input type="checkbox" name="personBean.carModels" value="Ford" id="personBean.carModels-1" checked="checked"/>
+    <label for="personBean.carModels-1" class="checkboxLabel">Ford</label>
+    
+    <input type="checkbox" name="personBean.carModels" value="Chrysler" id="personBean.carModels-2"/>
+    <label for="personBean.carModels-2" class="checkboxLabel">Chrysler</label>
+    
+    <input type="checkbox" name="personBean.carModels" value="Toyota" id="personBean.carModels-3"/>
+    <label for="personBean.carModels-3" class="checkboxLabel">Toyota</label>
+    
+    <input type="checkbox" name="personBean.carModels" value="Nissan" id="personBean.carModels-4" checked="checked"/>
+    <label for="personBean.carModels-4" class="checkboxLabel">Nissan</label>
+    <input type="hidden" id="__multiselect_save_personBean_carModels" name="__multiselect_personBean.carModels" value="" />
+  </td>
 </tr>
 ```
 
-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).
+__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).
+
+|Return to [Debugging Struts](debugging-struts.html)|or|onward to [Form validation using XML](form-validation-using-xml.html)|
+

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/form-validation-using-xml.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-validation-using-xml.md b/source/getting-started/form-validation-using-xml.md
index 88e576f..8204a89 100644
--- a/source/getting-started/form-validation-using-xml.md
+++ b/source/getting-started/form-validation-using-xml.md
@@ -121,3 +121,5 @@ The fieldexpression validator is useful when doing conditional validation of a u
 __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.
+
+|Return to [Form tags](form-tags.html)|or|onward to [Control tags](control-tags.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/form-validation.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-validation.md b/source/getting-started/form-validation.md
index bf4a3b4..bdcbbb3 100644
--- a/source/getting-started/form-validation.md
+++ b/source/getting-started/form-validation.md
@@ -93,3 +93,5 @@ This tutorial covered validating a user's form input by adding a validate method
 __Up Next__
 
 In our next tutorial we'll cover how to use message resource files to separate out the text from the view page.
+
+|Return to [Processing Forms](processing-forms.html)|or|onward to [Message resource files](message-resource-files.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/hello-world-using-struts2.md
----------------------------------------------------------------------
diff --git a/source/getting-started/hello-world-using-struts2.md b/source/getting-started/hello-world-using-struts2.md
index dd62365..04c3004 100644
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@ -217,3 +217,5 @@ Your browser sends to the web server a request for the URL [http://localhost:808
 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.
+
+|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)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/how-to-create-a-struts2-web-application.md
----------------------------------------------------------------------
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 d608b99..7a84838 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
@@ -225,3 +225,5 @@ __Getting Help__
 The [Struts 2 user mailing list](/mail.html) is an excellent place to get help.  If you are having a problem getting 
 this Basic Struts 2 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.  
+
+|Return to [Getting started](index.html)|or|onward to [Hello World using Struts 2](hello-world-using-struts2.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/http-session.md
----------------------------------------------------------------------
diff --git a/source/getting-started/http-session.md b/source/getting-started/http-session.md
index ccd598f..852b934 100644
--- a/source/getting-started/http-session.md
+++ b/source/getting-started/http-session.md
@@ -115,3 +115,5 @@ The example project includes both methods for mitigating the SessionAware securi
 __Summary__
 
 When your Action class needs to access the HTTP session object implement the SessionAware interface and override the setSession method. Be sure to also implement the ParameterNameAware interface and override the acceptableParameterName method to mitigate a potential security vulnerability. If you have multiple actions that implement SessionAware then consider modifying the params interceptor's excludeParams value as part of your Struts 2 package setup.
+
+|Return to [Unit Testing](unit-testing.html)|or|onward to [Preparable Interface](preperable-interface.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/introducing-interceptors.md
----------------------------------------------------------------------
diff --git a/source/getting-started/introducing-interceptors.md b/source/getting-started/introducing-interceptors.md
index 4c2a503..66cd51b 100644
--- a/source/getting-started/introducing-interceptors.md
+++ b/source/getting-started/introducing-interceptors.md
@@ -110,3 +110,5 @@ In addition to specifying your own stack of interceptors, you can also write you
 __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.
+
+|Return to [Annotations](annotations.html)|or|onward to [Unit Testing](unit-testing.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/message-resource-files.md
----------------------------------------------------------------------
diff --git a/source/getting-started/message-resource-files.md b/source/getting-started/message-resource-files.md
index bac906b..60375d4 100644
--- a/source/getting-started/message-resource-files.md
+++ b/source/getting-started/message-resource-files.md
@@ -227,3 +227,5 @@ If we implement the same concept by creating _es.properties versions of `global.
 __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).
+
+|Return to [Form validation](form-validation.html)|or|onward to [Exception handling](exception-handling.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/preperable-interface.md
----------------------------------------------------------------------
diff --git a/source/getting-started/preperable-interface.md b/source/getting-started/preperable-interface.md
index 0571572..5508fcf 100644
--- a/source/getting-started/preperable-interface.md
+++ b/source/getting-started/preperable-interface.md
@@ -41,3 +41,5 @@ When you run the example application, look in the log to see when the prepare me
 __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.
+
+|Return to [HTTP Session](http-session.html)|or|onward to [Exclude Parameters](exclude-parameters.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/processing-forms.md
----------------------------------------------------------------------
diff --git a/source/getting-started/processing-forms.md b/source/getting-started/processing-forms.md
index 27b52fc..7fbbb32 100644
--- a/source/getting-started/processing-forms.md
+++ b/source/getting-started/processing-forms.md
@@ -229,3 +229,5 @@ If everything is correct, you should be able to create the war file, deploy the
 Fill out the form and click the submit button. You should then see the thankyou.jsp page.
 
 ![thanyoujsp.png](attachments/att14975000_thanyoujsp.png)
+
+|Return to [Coding Struts 2 Actions](coding-actions.html)|or|onward to [Form validation](form-validation.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/spring.md
----------------------------------------------------------------------
diff --git a/source/getting-started/spring.md b/source/getting-started/spring.md
index 3f3acde..3fe5803 100644
--- a/source/getting-started/spring.md
+++ b/source/getting-started/spring.md
@@ -132,3 +132,5 @@ In the `struts.xml`�configuration file you must specify the Spring id value for
 __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.
+
+|Return to [Themes](themes.html)|or|onward to [Annotations](annotations.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/themes.md
----------------------------------------------------------------------
diff --git a/source/getting-started/themes.md b/source/getting-started/themes.md
index 15a785a..9ce11c6 100644
--- a/source/getting-started/themes.md
+++ b/source/getting-started/themes.md
@@ -144,3 +144,5 @@ __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 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) .
+
+|Return to [Wildcard method selection](wildcard-method-selection.html)|or|onward to [Spring and Struts 2](spring.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/unit-testing.md
----------------------------------------------------------------------
diff --git a/source/getting-started/unit-testing.md b/source/getting-started/unit-testing.md
index 0a9d8a8..d79f002 100644
--- a/source/getting-started/unit-testing.md
+++ b/source/getting-started/unit-testing.md
@@ -108,3 +108,5 @@ In the last assertEquals statement my test checks that the Struts 2 framework re
 __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.
+
+|Return to [Introducing Interceptors](introducing-interceptors.html)|or|onward to [HTTP Session](http-session.html)|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/using-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/using-tags.md b/source/getting-started/using-tags.md
index 5189297..6837983 100644
--- a/source/getting-started/using-tags.md
+++ b/source/getting-started/using-tags.md
@@ -210,3 +210,5 @@ Since getMessageStore of HelloWorldAction class returns a MessageStore object, S
 ![displaymessagestore.png](attachments/att14974995_displaymessagestore.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_  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)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/ccdbffb9/source/getting-started/wildcard-method-selection.md
----------------------------------------------------------------------
diff --git a/source/getting-started/wildcard-method-selection.md b/source/getting-started/wildcard-method-selection.md
index 277d950..fefbad5 100644
--- a/source/getting-started/wildcard-method-selection.md
+++ b/source/getting-started/wildcard-method-selection.md
@@ -74,3 +74,5 @@ The Struts 2 documentation also recommends turning off the option to use the dyn
 __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.
+
+|Return to [Form validation using XML](form-validation-using-xml.html)|or|onward to [Themes](themes.html)|


[2/5] struts-site git commit: Uses dedicated layout

Posted by lu...@apache.org.
Uses dedicated layout


Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/aaa64647
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/aaa64647
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/aaa64647

Branch: refs/heads/master
Commit: aaa64647857cf0f4c0e7e9515506c18a462d90cf
Parents: ccdbffb
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Wed Apr 12 10:17:53 2017 +0200
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Wed Apr 12 10:17:53 2017 +0200

----------------------------------------------------------------------
 source/_layouts/getting-started.html            |  50 ++++++++
 source/getting-started/annotations.md           |   6 +-
 source/getting-started/coding-actions.md        |  24 ++--
 source/getting-started/control-tags.md          |   4 +-
 source/getting-started/debugging-struts.md      |   2 +-
 source/getting-started/exception-handling.md    |  38 +++---
 source/getting-started/exclude-parameters.md    |   2 +-
 source/getting-started/form-tags.md             | 118 +++++++++----------
 .../form-validation-using-xml.md                |   2 +-
 source/getting-started/form-validation.md       |  28 ++---
 .../hello-world-using-struts2.md                |  18 +--
 .../how-to-create-a-struts2-web-application.md  |   2 +-
 source/getting-started/http-session.md          |  45 +++----
 .../getting-started/introducing-interceptors.md |   2 +-
 .../getting-started/message-resource-files.md   |  22 ++--
 source/getting-started/preperable-interface.md  |   8 +-
 source/getting-started/processing-forms.md      |   2 +-
 source/getting-started/spring.md                |   4 +-
 source/getting-started/themes.md                |  22 ++--
 source/getting-started/unit-testing.md          |  36 +++---
 source/getting-started/using-tags.md            |   2 +-
 .../wildcard-method-selection.md                |   2 +-
 22 files changed, 244 insertions(+), 195 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/_layouts/getting-started.html
----------------------------------------------------------------------
diff --git a/source/_layouts/getting-started.html b/source/_layouts/getting-started.html
new file mode 100644
index 0000000..dd1e9e9
--- /dev/null
+++ b/source/_layouts/getting-started.html
@@ -0,0 +1,50 @@
+<!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>
+    {{ content }}
+  </section>
+</article>
+
+{% include footer.html %}
+
+<script>
+$(function() {
+  return $("h2, h3, h4, h5, h6").each(function(i, el) {
+    var $el, id;
+    $el = $(el);
+    id = $el.attr('id');
+    if (id) {
+      $el.removeAttr('id');
+      return $el.before($("<a />").addClass('anchor').attr('name', id));
+    }
+  });
+});
+</script>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/annotations.md
----------------------------------------------------------------------
diff --git a/source/getting-started/annotations.md b/source/getting-started/annotations.md
index 2ba1234..daf2b59 100644
--- a/source/getting-started/annotations.md
+++ b/source/getting-started/annotations.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Annotations
 ---
 ## Annotations
@@ -24,7 +24,7 @@ Struts 2 enables the use of standard naming conventions and annotations when you
 <dependency>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-convention-plugin</artifactId>
-    <version>2.5.10.1</version>
+    <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.
@@ -93,4 +93,4 @@ __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 Struts 2 application.
 
-|Return to [Spring and Struts 2](spring.html)|or|onward to [Introducing Interceptors](introducing-interceptors.html)|
\ No newline at end of file
+|Return to [Spring and Struts 2](spring.html)|or|onward to [Introducing Interceptors](introducing-interceptors.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/coding-actions.md
----------------------------------------------------------------------
diff --git a/source/getting-started/coding-actions.md b/source/getting-started/coding-actions.md
index a277d39..5b0fddc 100644
--- a/source/getting-started/coding-actions.md
+++ b/source/getting-started/coding-actions.md
@@ -1,13 +1,11 @@
 ---
-layout: default
+layout: getting-started
 title: Coding actions
 ---
 ## Coding actions
 
 This tutorial assumes you've completed the [Using Struts 2 Tags](#PAGE_14811875) tutorial and have a working using_tags project. The example code for this tutorial, coding_action, is available for checkout from the Struts 2 GitHub repository: [https://github.com/apache/struts-examples](https://github.com/apache/struts-examples).
 
-> 
-
 __Introduction__
 
 Coding a Struts 2 Action involves several parts:
@@ -77,15 +75,15 @@ For the example application associated with this tutorial add the following Java
 **Add userName to HelloWorldAction**
 
 ```java
-    private String userName;
+private String userName;
 
-    public String getUserName() {
-        return userName;
-    }
+public String getUserName() {
+    return userName;
+}
 
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
+public void setUserName(String userName) {
+    this.userName = userName;
+}
 ```
 
 To personalize the MessageStore message (recall that class MessageStore is storing the message to display) add the following Java code to the HelloWorldAction's execute method after the statement that instantiates the MessageStore object.
@@ -93,9 +91,9 @@ To personalize the MessageStore message (recall that class MessageStore is stori
 **Add userName value to message**
 
 ```java
-    if (userName != null) {
-        messageStore.setMessage( messageStore.getMessage() + " " + userName);
-    }
+if (userName != null) {
+    messageStore.setMessage( messageStore.getMessage() + " " + userName);
+}
 ```
 
 Now build and deploy the application. Enter your name in the form and click the submit button. You should see the following page.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/control-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/control-tags.md b/source/getting-started/control-tags.md
index d7fcb3a..b8208f6 100644
--- a/source/getting-started/control-tags.md
+++ b/source/getting-started/control-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Control tags
 ---
 ## Control Tags
@@ -78,4 +78,4 @@ __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.
 
-|Return to [Form validation using XML](form-validation-using-xml.md)|or|onward to [Wildcard method selection](wildcard-method-selection.html)|
\ No newline at end of file
+|Return to [Form validation using XML](form-validation-using-xml.md)|or|onward to [Wildcard method selection](wildcard-method-selection.html)|

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/debugging-struts.md
----------------------------------------------------------------------
diff --git a/source/getting-started/debugging-struts.md b/source/getting-started/debugging-struts.md
index e28854a..6cfe0a4 100644
--- a/source/getting-started/debugging-struts.md
+++ b/source/getting-started/debugging-struts.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Debugging Struts
 ---
 ## Debugging Struts

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/exception-handling.md
----------------------------------------------------------------------
diff --git a/source/getting-started/exception-handling.md b/source/getting-started/exception-handling.md
index ac34450..0f8c66b 100644
--- a/source/getting-started/exception-handling.md
+++ b/source/getting-started/exception-handling.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Exception handling
 ---
 ## Exception Handling
@@ -19,15 +19,15 @@ Using the Struts 2 framework you can specify in the struts.xml how the framework
 To enable global exception handling you need to add two nodes to `struts.xml`: `global-exception-mapping` and `global-results`. For example examine the `struts.xml` from the exception_handling project.
 
 ```xml
-    <global-results>
-        <result name="securityerror">/securityerror.jsp</result>
-  	<result name="error">/error.jsp</result>
-    </global-results>
-
-    <global-exception-mappings>
-	<exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" />
-	 <exception-mapping exception="java.lang.Exception" result="error" />
-    </global-exception-mappings>
+<global-results>
+    <result name="securityerror">/securityerror.jsp</result>
+    <result name="error">/error.jsp</result>
+</global-results>
+
+<global-exception-mappings>
+    <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" />
+    <exception-mapping exception="java.lang.Exception" result="error" />
+</global-exception-mappings>
 ```
 
 The global exception mapping node tells the Struts 2 framework what to do if an uncaught exception of the type specified (or a child of that type) is thrown by the the application. For example if a SecurityBreachException is thrown but not caught, the Struts 2 Action class will return a result of "securityerror". All other uncaught exceptions will cause the Struts 2 Action class to return a result of "error".
@@ -39,11 +39,11 @@ __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.
 
 ```xml
-   <action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
-      <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="login" />
-      <result>/register.jsp</result>
-      <result name="login">/login.jsp</result>
-   </action>
+<action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
+   <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="login" />
+   <result>/register.jsp</result>
+   <result name="login">/login.jsp</result>
+</action>
 ```
 
 The above action node from the example application's struts.xml file specifies that if the method `throwSecurityException` throws an uncaught exception of type `SecurityBreachException` the Struts 2 framework should return a result of login. The login result will cause the user's browser to be redirected to login.jsp.
@@ -82,13 +82,13 @@ __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.
 
 ```html
-   <h4>The application has malfunctioned.</h4>
+<h4>The application has malfunctioned.</h4>
 
-   <p>  Please contact technical support with the following information:</p> 
+<p>Please contact technical support with the following information:</p> 
 
-   <h4>Exception Name: <s:property value="exception" /> </h4>
+<h4>Exception Name: <s:property value="exception" /> </h4>
 
-   <h4>Exception Details: <s:property value="exceptionStack" /></h4> 
+<h4>Exception Details: <s:property value="exceptionStack" /></h4> 
 ```
 
 When the exception interceptor is triggered it adds to the fields available for display the exception message and the exception's stack trace.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/exclude-parameters.md
----------------------------------------------------------------------
diff --git a/source/getting-started/exclude-parameters.md b/source/getting-started/exclude-parameters.md
index 4d23bcb..0138296 100644
--- a/source/getting-started/exclude-parameters.md
+++ b/source/getting-started/exclude-parameters.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Exclude parameters
 ---
 ## Exclude Parameters

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/form-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-tags.md b/source/getting-started/form-tags.md
index f64f56b..6796451 100644
--- a/source/getting-started/form-tags.md
+++ b/source/getting-started/form-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Form tags
 ---
 ## Form Tags
@@ -72,16 +72,16 @@ Here is the HTML that results from using the above Struts 2 select tag.
 
 ```html
 <tr>
-  <td class="tdLabel">
-    <label for="save_personBean_sport" class="label">Favorite sport:</label>
-  </td>
-  <td>
-    <select name="personBean.sport" id="save_personBean_sport">
-      <option value="football">football</option>
-      <option value="baseball">baseball</option>
-      <option value="basketball" selected="selected">basketball</option>
-    </select>
-  </td>
+    <td class="tdLabel">
+        <label for="save_personBean_sport" class="label">Favorite sport:</label>
+    </td>
+    <td>
+        <select name="personBean.sport" id="save_personBean_sport">
+            <option value="football">football</option>
+            <option value="baseball">baseball</option>
+            <option value="basketball" selected="selected">basketball</option>
+        </select>
+    </td>
 </tr>
 ```
 
@@ -111,19 +111,19 @@ The Array of String objects returned are used to create the individual radio but
 
 ```html
 <tr>
-  <td class="tdLabel">
-    <label for="save_personBean_gender" class="label">Gender:</label>
-  </td>
-  <td>
-    <input type="radio" name="personBean.gender" id="save_personBean_gendermale" value="male"/>
-    <label for="save_personBean_gendermale">male</label>
-    
-    <input type="radio" name="personBean.gender" id="save_personBean_genderfemale" value="female"/>
-    <label for="save_personBean_genderfemale">female</label>
-    
-    <input type="radio" name="personBean.gender" id="save_personBean_gendernot sure" checked="checked" value="not sure"/>
-    <label for="save_personBean_gendernot sure">not sure</label>
-  </td>
+    <td class="tdLabel">
+        <label for="save_personBean_gender" class="label">Gender:</label>
+    </td>
+    <td>
+        <input type="radio" name="personBean.gender" id="save_personBean_gendermale" value="male"/>
+        <label for="save_personBean_gendermale">male</label>
+        
+        <input type="radio" name="personBean.gender" id="save_personBean_genderfemale" value="female"/>
+        <label for="save_personBean_genderfemale">female</label>
+        
+        <input type="radio" name="personBean.gender" id="save_personBean_gendernot sure" checked="checked" value="not sure"/>
+        <label for="save_personBean_gendernot sure">not sure</label>
+    </td>
 </tr>
 ```
 
@@ -154,18 +154,18 @@ displayed to the user. So the above Struts 2 select tag code results in this HTM
 
 ```html
 <tr>
-  <td class="tdLabel">
-    <label for="save_personBean_residency" class="label">State resident:</label>
-  </td>
-  <td>
-    <select name="personBean.residency" id="save_personBean_residency">
-      <option value="AZ">Arizona</option>
-      <option value="CA">California</option>
-      <option value="FL">Florida</option>
-      <option value="KS" selected="selected">Kansas</option>
-      <option value="NY">New York</option>
-    </select>
-  </td>
+    <td class="tdLabel">
+        <label for="save_personBean_residency" class="label">State resident:</label>
+    </td>
+    <td>
+        <select name="personBean.residency" id="save_personBean_residency">
+            <option value="AZ">Arizona</option>
+            <option value="CA">California</option>
+            <option value="FL">Florida</option>
+            <option value="KS" selected="selected">Kansas</option>
+            <option value="NY">New York</option>
+        </select>
+    </td>
 </tr>
 ```
 
@@ -192,12 +192,12 @@ Since the method getOver21 returns true, the checkbox is checked.
 
 ```html
 <tr>
-  <td valign="top" align="right"></td>
-  <td valign="top" align="left">
-    <input type="checkbox" name="personBean.over21" value="true" checked="checked" id="save_personBean_over21"/>
-    <input type="hidden" id="__checkbox_save_personBean_over21" name="__checkbox_personBean.over21" value="true" />
-    <label for="save_personBean_over21" class="checkboxLabel">21 or older</label>
-  </td>
+    <td valign="top" align="right"></td>
+    <td valign="top" align="left">
+        <input type="checkbox" name="personBean.over21" value="true" checked="checked" id="save_personBean_over21"/>
+        <input type="hidden" id="__checkbox_save_personBean_over21" name="__checkbox_personBean.over21" value="true" />
+        <label for="save_personBean_over21" class="checkboxLabel">21 or older</label>
+    </td>
 </tr>
 ```
 
@@ -242,23 +242,23 @@ the checkbox will be checked.
 
 ```html
 <tr>
-  <td class="tdLabel">
-    <label for="save_personBean_carModels" class="label">Car models owned:</label>
-  </td>
-  <td>
-    <input type="checkbox" name="personBean.carModels" value="Ford" id="personBean.carModels-1" checked="checked"/>
-    <label for="personBean.carModels-1" class="checkboxLabel">Ford</label>
-    
-    <input type="checkbox" name="personBean.carModels" value="Chrysler" id="personBean.carModels-2"/>
-    <label for="personBean.carModels-2" class="checkboxLabel">Chrysler</label>
-    
-    <input type="checkbox" name="personBean.carModels" value="Toyota" id="personBean.carModels-3"/>
-    <label for="personBean.carModels-3" class="checkboxLabel">Toyota</label>
-    
-    <input type="checkbox" name="personBean.carModels" value="Nissan" id="personBean.carModels-4" checked="checked"/>
-    <label for="personBean.carModels-4" class="checkboxLabel">Nissan</label>
-    <input type="hidden" id="__multiselect_save_personBean_carModels" name="__multiselect_personBean.carModels" value="" />
-  </td>
+    <td class="tdLabel">
+        <label for="save_personBean_carModels" class="label">Car models owned:</label>
+    </td>
+    <td>
+        <input type="checkbox" name="personBean.carModels" value="Ford" id="personBean.carModels-1" checked="checked"/>
+        <label for="personBean.carModels-1" class="checkboxLabel">Ford</label>
+        
+        <input type="checkbox" name="personBean.carModels" value="Chrysler" id="personBean.carModels-2"/>
+        <label for="personBean.carModels-2" class="checkboxLabel">Chrysler</label>
+        
+        <input type="checkbox" name="personBean.carModels" value="Toyota" id="personBean.carModels-3"/>
+        <label for="personBean.carModels-3" class="checkboxLabel">Toyota</label>
+        
+        <input type="checkbox" name="personBean.carModels" value="Nissan" id="personBean.carModels-4" checked="checked"/>
+        <label for="personBean.carModels-4" class="checkboxLabel">Nissan</label>
+        <input type="hidden" id="__multiselect_save_personBean_carModels" name="__multiselect_personBean.carModels" value="" />
+    </td>
 </tr>
 ```
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/form-validation-using-xml.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-validation-using-xml.md b/source/getting-started/form-validation-using-xml.md
index 8204a89..64f2130 100644
--- a/source/getting-started/form-validation-using-xml.md
+++ b/source/getting-started/form-validation-using-xml.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Form validation using XML
 ---
 ## Form Validation Using XML

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/form-validation.md
----------------------------------------------------------------------
diff --git a/source/getting-started/form-validation.md b/source/getting-started/form-validation.md
index bdcbbb3..04615e7 100644
--- a/source/getting-started/form-validation.md
+++ b/source/getting-started/form-validation.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Form Validation
 ---
 ## Form Validation
@@ -31,19 +31,19 @@ Add the following validate method to Register.java (the Action class).
 **validate method**
 
 ```java
-    public void validate(){
-        if (personBean.getFirstName().length() == 0) {
-            addFieldError("personBean.firstName", "First name is required.");
-        }
-
-        if (personBean.getEmail().length() == 0) {
-            addFieldError("personBean.email", "Email is required.");
-        }
-
-        if (personBean.getAge() < 18) {
-            addFieldError("personBean.age", "Age is required and must be 18 or older");
-        }
+public void validate(){
+    if (personBean.getFirstName().length() == 0) {
+        addFieldError("personBean.firstName", "First name is required.");
     }
+
+    if (personBean.getEmail().length() == 0) {
+        addFieldError("personBean.email", "Email is required.");
+    }
+
+    if (personBean.getAge() < 18) {
+        addFieldError("personBean.age", "Age is required and must be 18 or older");
+    }
+}
 ```
 
 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).
@@ -69,7 +69,7 @@ So when validation fails and Struts 2 returns input, the Struts 2 framework will
 So the following addFieldError method call:
 
 ```java
-    addFieldError("personBean.firstName", "First name is required.")
+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.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/hello-world-using-struts2.md
----------------------------------------------------------------------
diff --git a/source/getting-started/hello-world-using-struts2.md b/source/getting-started/hello-world-using-struts2.md
index 04c3004..10a0cec 100644
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Hello World using Struts 2
 ---
 ## Hello World Using Struts 2
@@ -173,14 +173,14 @@ First add the taglib directive at the top of the jsp `<%@ taglib prefix="s" uri=
 <%@ taglib prefix="s" uri="/struts-tags" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-    <title>Basic Struts 2 Application - Welcome</title>
-  </head>
-  <body>
-    <h1>Welcome To Struts 2!</h1>
-    <p><a href="<s:url action='hello'/>">Hello World</a></p>
-  </body>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+        <title>Basic Struts 2 Application - Welcome</title>
+    </head>
+    <body>
+        <h1>Welcome To Struts 2!</h1>
+        <p><a href="<s:url action='hello'/>">Hello World</a></p>
+    </body>
 </html>
 ```
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/how-to-create-a-struts2-web-application.md
----------------------------------------------------------------------
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 7a84838..acc40c4 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,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: How to create a Struts 2 web application
 ---
 ## How To Create A Struts 2 Web Application

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/http-session.md
----------------------------------------------------------------------
diff --git a/source/getting-started/http-session.md b/source/getting-started/http-session.md
index 852b934..20bd341 100644
--- a/source/getting-started/http-session.md
+++ b/source/getting-started/http-session.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Http Session
 ---
 ## HTTP Session
@@ -73,15 +73,15 @@ Using SessionAware does introduce a potential security vulnerability that you sh
 **HelloWorldAction.java acceptableParameterName Method**
 
 ```java
-    public boolean acceptableParameterName(String parameterName) {
-        boolean allowedParameterName = true ;
+public boolean acceptableParameterName(String parameterName) {
+    boolean allowedParameterName = true ;
 
-        if ( parameterName.contains("session")  || parameterName.contains("request") ) {
-            allowedParameterName = false ;
-        } 
-		
-        return allowedParameterName;
-    }
+    if ( parameterName.contains("session")  || parameterName.contains("request") ) {
+        allowedParameterName = false ;
+    } 
+
+    return allowedParameterName;
+}
 ```
 
 This method will be called by the Struts 2 framework for each parameter in the request scope. By returning false if the parameter name contains "session" we are telling the Struts 2 framework to ignore that parameter. This will prevent a malicious user from trying to hack the HTTP session object.
@@ -91,19 +91,20 @@ Instead of having each action that implements SessionAware also implement the Pa
 **struts.xml configure params interceptor**
 
 ```xml
-    <package name="basicstruts2" extends="struts-default">
-        <interceptors>
-            <interceptor-stack name="appDefault">
-                <interceptor-ref name="defaultStack">
-                    <param name="exception.logEnabled">true</param>
-                    <param name="exception.logLevel">ERROR</param>
-                    <param name="params.excludeParams">dojo..*,^struts..*,^session..*,^request..*,^application..*,^servlet(Request|Response)..*,parameters...*</param>
-                </interceptor-ref>
-            </interceptor-stack>
-        </interceptors>
-		
-        <default-interceptor-ref name="appDefault" />
-...
+<package name="basicstruts2" extends="struts-default">
+    <interceptors>
+        <interceptor-stack name="appDefault">
+            <interceptor-ref name="defaultStack">
+                <param name="exception.logEnabled">true</param>
+                <param name="exception.logLevel">ERROR</param>
+                <param name="params.excludeParams">dojo..*,^struts..*,^session..*,^request..*,^application..*,^servlet(Request|Response)..*,parameters...*</param>
+            </interceptor-ref>
+        </interceptor-stack>
+    </interceptors>
+
+    <default-interceptor-ref name="appDefault" />
+    ...
+</package>
 ```
 
 The above code will ensure that every action in the "basicstruts2" package that implements the SessionAware interface will exclude from processing parameters that starts with the strings provided in the params.excludeParams noded.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/introducing-interceptors.md
----------------------------------------------------------------------
diff --git a/source/getting-started/introducing-interceptors.md b/source/getting-started/introducing-interceptors.md
index 66cd51b..4837215 100644
--- a/source/getting-started/introducing-interceptors.md
+++ b/source/getting-started/introducing-interceptors.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Introducing Interceptors
 ---
 ## Introducing Interceptors

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/message-resource-files.md
----------------------------------------------------------------------
diff --git a/source/getting-started/message-resource-files.md b/source/getting-started/message-resource-files.md
index 60375d4..b572da3 100644
--- a/source/getting-started/message-resource-files.md
+++ b/source/getting-started/message-resource-files.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Message Resource Files
 ---
 ## Message Resource Files
@@ -78,9 +78,9 @@ We use the Struts 2 url tag to create a link to action registerInput. We then us
 **registerInput action node for struts.xml**
 
 ```xml
-    <action name="registerInput" class="org.apache.struts.register.action.Register" method="input" >
-        <result name="input">/register.jsp</result>
-    </action>
+<action name="registerInput" class="org.apache.struts.register.action.Register" method="input" >
+    <result name="input">/register.jsp</result>
+</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.
@@ -172,8 +172,8 @@ To use the contact key in a view page, add the following markup to index.jsp jus
 **Using contact property**
 
 ```html
-    <hr />
-    <s:text name="contact" />
+<hr />
+<s:text name="contact" />
 ```
 
 Rebuild the war file, deploy it to your Servlet container, and then go to index.action. You should see:
@@ -209,11 +209,11 @@ In our example application, we need to tell Struts 2 to use a locale value of es
 **Specify The Locale As a URL Parameter**
 
 ```html
-    <h3>Registro espa�ol</h3>
-    <s:url action="registerInput" var="registerInputLinkES">
-        <s:param name="request_locale">es</s:param>
-    </s:url>
-    <p><a href="${registerInputLinkES}">Por favor, reg�strese</a> para nuestro sorteo</p>
+<h3>Registro espa�ol</h3>
+<s:url action="registerInput" var="registerInputLinkES">
+    <s:param name="request_locale">es</s:param>
+</s:url>
+<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).

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/preperable-interface.md
----------------------------------------------------------------------
diff --git a/source/getting-started/preperable-interface.md b/source/getting-started/preperable-interface.md
index 5508fcf..1a18dde 100644
--- a/source/getting-started/preperable-interface.md
+++ b/source/getting-started/preperable-interface.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Preperable Interface
 ---
 ## Preparable Interface
@@ -29,9 +29,9 @@ If you examine class EditAction in the example application (see above) you'll se
 **EditAction.java prepare Method**
 
 ```java
-   carModelsAvailable = carModelsService.getCarModels() ;
-		
-   setPersonBean(editService.getPerson());
+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.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/processing-forms.md
----------------------------------------------------------------------
diff --git a/source/getting-started/processing-forms.md b/source/getting-started/processing-forms.md
index 7fbbb32..27afd56 100644
--- a/source/getting-started/processing-forms.md
+++ b/source/getting-started/processing-forms.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Processing forms
 ---
 ## Processing Forms

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/spring.md
----------------------------------------------------------------------
diff --git a/source/getting-started/spring.md b/source/getting-started/spring.md
index 3fe5803..2b30f15 100644
--- a/source/getting-started/spring.md
+++ b/source/getting-started/spring.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Spring
 ---
 ## Spring and Struts 2
@@ -35,7 +35,7 @@ Spring provides a mechanism to manage dependencies by injecting them at run time
 **EditAction Class No Hard-Coded Dependency**
 
 ```java
-    private EditService editService ;
+private EditService editService;
 ```
 
 At run time the Spring framework will provide an object of a class that implements the EditService interface.

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/themes.md
----------------------------------------------------------------------
diff --git a/source/getting-started/themes.md b/source/getting-started/themes.md
index 9ce11c6..51b7a01 100644
--- a/source/getting-started/themes.md
+++ b/source/getting-started/themes.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Themes
 ---
 ## Themes
@@ -26,16 +26,16 @@ generates this HTML markup:
 
 ```html
 <tr>
-<td class="tdLabel">
-<label for="save_personBean_sport" class="label">Favorite sport:</label>
-</td>
-<td>
-<select name="personBean.sport" id="save_personBean_sport">
-    <option value="football">football</option>
-    <option value="baseball">baseball</option>
-    <option value="basketball" selected="selected">basketball</option>
-</select>
-</td>
+    <td class="tdLabel">
+        <label for="save_personBean_sport" class="label">Favorite sport:</label>
+    </td>
+    <td>
+        <select name="personBean.sport" id="save_personBean_sport">
+            <option value="football">football</option>
+            <option value="baseball">baseball</option>
+            <option value="basketball" selected="selected">basketball</option>
+        </select>
+    </td>
 </tr>
 ```
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/unit-testing.md
----------------------------------------------------------------------
diff --git a/source/getting-started/unit-testing.md b/source/getting-started/unit-testing.md
index d79f002..bd3c9ad 100644
--- a/source/getting-started/unit-testing.md
+++ b/source/getting-started/unit-testing.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Unit testing
 ---
 ## Unit Testing
@@ -29,10 +29,10 @@ To test the validate method we want Struts to call the Struts action that will c
 **struts.xml**
 
 ```xml
-    <action name="register" class="org.apache.struts.register.action.Register" method="execute">
-        <result name="success">/thankyou.jsp</result>
-        <result name="input">/register.jsp</result>
-    </action>
+<action name="register" class="org.apache.struts.register.action.Register" method="execute">
+    <result name="success">/thankyou.jsp</result>
+    <result name="input">/register.jsp</result>
+</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.
@@ -87,19 +87,19 @@ To test that validation should fail, I just need to have a test method that does
 ```java
 @Test
 public void testExecuteValidationFailsMissingFirstName() throws Exception() {
-  //request.setParameter("personBean.firstName", "Bruce");
-  request.setParameter("personBean.lastName", "Phillips");
-  request.setParameter("personBean.email", "bphillips@ku.edu");
-  request.setParameter("personBean.age", "19");
-
-  ActionProxy actionProxy = getActionProxy("/register.action");
-  Register action = (Register) actionProxy.getAction() ;
-
-  assertNotNull("The action is null but should not be.", action);
-
-  String result = actionProxy.execute();
-
-  assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result);
+    //request.setParameter("personBean.firstName", "Bruce");
+    request.setParameter("personBean.lastName", "Phillips");
+    request.setParameter("personBean.email", "bphillips@ku.edu");
+    request.setParameter("personBean.age", "19");
+    
+    ActionProxy actionProxy = getActionProxy("/register.action");
+    Register action = (Register) actionProxy.getAction() ;
+    
+    assertNotNull("The action is null but should not be.", action);
+    
+    String result = actionProxy.execute();
+    
+    assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result);
 }
 ```
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/using-tags.md
----------------------------------------------------------------------
diff --git a/source/getting-started/using-tags.md b/source/getting-started/using-tags.md
index 6837983..1723017 100644
--- a/source/getting-started/using-tags.md
+++ b/source/getting-started/using-tags.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Using tags
 ---
 ## Using Tags

http://git-wip-us.apache.org/repos/asf/struts-site/blob/aaa64647/source/getting-started/wildcard-method-selection.md
----------------------------------------------------------------------
diff --git a/source/getting-started/wildcard-method-selection.md b/source/getting-started/wildcard-method-selection.md
index fefbad5..bbf9227 100644
--- a/source/getting-started/wildcard-method-selection.md
+++ b/source/getting-started/wildcard-method-selection.md
@@ -1,5 +1,5 @@
 ---
-layout: default
+layout: getting-started
 title: Wildcard Method Selection
 ---
 ## Wildcard Method Selection


[3/5] struts-site git commit: updated page to current example application

Posted by lu...@apache.org.
updated page to current example application


Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/4ca26c06
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/4ca26c06
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/4ca26c06

Branch: refs/heads/master
Commit: 4ca26c060faa4c1ccf5765837dd0062b6161eb2a
Parents: 2423050
Author: Stefaan Dutry <st...@gmail.com>
Authored: Mon Apr 17 11:37:29 2017 +0200
Committer: Stefaan Dutry <st...@gmail.com>
Committed: Mon Apr 17 11:37:29 2017 +0200

----------------------------------------------------------------------
 .../att14974992_Basic_Struts2_Mvn.png           | Bin 18234 -> 0 bytes
 .../attachments/basic_struts2_maven_jsp.png     | Bin 0 -> 8387 bytes
 .../how-to-create-a-struts2-web-application.md  | 151 +++++++++++--------
 3 files changed, 88 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/4ca26c06/source/getting-started/attachments/att14974992_Basic_Struts2_Mvn.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/att14974992_Basic_Struts2_Mvn.png b/source/getting-started/attachments/att14974992_Basic_Struts2_Mvn.png
deleted file mode 100644
index 4b2bdb3..0000000
Binary files a/source/getting-started/attachments/att14974992_Basic_Struts2_Mvn.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/4ca26c06/source/getting-started/attachments/basic_struts2_maven_jsp.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/basic_struts2_maven_jsp.png b/source/getting-started/attachments/basic_struts2_maven_jsp.png
new file mode 100644
index 0000000..48b6a79
Binary files /dev/null and b/source/getting-started/attachments/basic_struts2_maven_jsp.png differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/4ca26c06/source/getting-started/how-to-create-a-struts2-web-application.md
----------------------------------------------------------------------
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 d608b99..7e95cba 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
@@ -40,33 +40,77 @@ at [struts-examples](https://github.com/apache/struts-examples).
 > This tutorial assumes you know how to create a Java web application that uses Maven to manage artifacts and build 
 the web application archive (war) file.
 
-__Step 1 - Create A Java Web Application__
+#### Step 1 - Create A Java Web Application
 
 In your Java IDE create a Java web application with a project name of basic_struts that follows the standard Maven
-project folder structure. In your pom.xml include the following:
+project folder structure. In your `pom.xml` include the following:
 
 **pom.xml build node**
 
 ```xml
 <build>
-    <finalName>basic_struts</finalName>
+    <finalName>basic-struts</finalName>
 </build>
 ```
-{:title="Final name"}
 
-__Step 2 - Add index.jsp__
+###### to run the application using maven, add the jetty maven-plugin to your pom.xml
+
+**pom.xml jetty plugin**
+
+```xml
+<build>
+    ...   
+    <plugins>
+        <plugin>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-maven-plugin</artifactId>
+            <version>8.1.16.v20140903</version>
+            <configuration>
+                <webApp>
+                    <contextPath>/${build.finalName}</contextPath>
+                </webApp>
+                <stopKey>CTRL+C</stopKey>
+                <stopPort>8999</stopPort>
+                <scanIntervalSeconds>10</scanIntervalSeconds>
+                <scanTargets>
+                    <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget>
+                </scanTargets>
+            </configuration>
+        </plugin>
+    </plugins>
+</build>
+```
+The above plugin will enable you to run the application using `mvn jetty:run`
+
+#### Step 2 - Add index.jsp
 
 Our next step is to add a simple `index.jsp` to this web application. Create an `index.jsp` under `src/main/webapp`
 with a title of __Basic Struts 2 Application - Welcome__ and in the body add an h1 heading of __Welcome to Struts 2!__
 
-Run `mvn clean package` to create the war file. Copy the war file into your Servlet container so that it will deploy the war file.
+**index.jsp**
+
+```jsp
+<!DOCTYPE html>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <title>Basic Struts 2 Application - Welcome</title>
+  </head>
+  <body>
+    <h1>Welcome To Struts 2!</h1>
+  </body>
+</html>
+```
 
-Start up your Servlet container and in a web browser go to [http://localhost:8080/Basic_Struts2_Mvn/index.jsp](http://localhost:8080/Basic_Struts2_Mvn/index.jsp). 
+Run `mvn jetty:run` to run the application.
+
+In a web browser go to [http://localhost:8080/basic-struts/index.jsp]([http://localhost:8080/basic-struts/index.jsp). 
 You should see the following:
 
-![Basic_Struts2_Mvn.png](attachments/att14974992_Basic_Struts2_Mvn.png)
+![basic_struts2_maven_jsp.png](attachments/basic_struts2_maven_jsp.png)
 
-__Step 3 - Add Struts 2 Jar Files To Class Path__
+#### Step 3 - Add Struts 2 Jar Files To Class Path
 
 Now that we know we have a working Java web application, lets add the minimal required Struts 2 framework Jar files 
 to our web application's class path. In `pom.xml` add the following dependency node:
@@ -87,58 +131,45 @@ files struts2-core requires (transitive dependencies).
 <i class="glyphicon glyphicon-info-sign alert-info" aria-hidden="true"></i> Beginning with Struts version 2.2.3 
 you do not need to specify a separate dependency node for javassist.
 
-__Step 4 - Add Logging__
+#### Step 4 - Add Logging
 
-To see what's happening under the hood, the example application for this tutorial uses log4j. You'll need to add to pom.xml a dependency node for the log4j jar file:
+To see what's happening under the hood, the example application for this tutorial uses log4j2. You'll need to add a dependency node for log4j2 to the pom:
 
 **pom.xml log4j dependency node**
 
 ```xml
 <dependency>
-    <groupId>log4j</groupId>
-    <artifactId>log4j</artifactId>
-    <version>1.2.14</version>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-core</artifactId>
+    <version>2.8.2</version>
 </dependency>
 ```
 
-Setup a `log4j.xml` configuration in the `src/main/resources` folder. You can copy the one from the example application, 
-which contains the following
+Setup a `log4j2.xml` configuration in the `src/main/resources` folder which contains the following
 
-**log4j.xml**
+**log4j2.xml**
 
 ```xml
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-    
-    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
-       <layout class="org.apache.log4j.PatternLayout"> 
-          <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/> 
-       </layout> 
-    </appender>
- 
-    <!-- specify the logging level for loggers from other libraries -->
-    <logger name="com.opensymphony">
-    	<level value="DEBUG" />
-    </logger>
-
-    <logger name="org.apache.struts2">
-    	 <level value="DEBUG" />
-    </logger>
-  
-   <!-- for all other loggers log only info and above log messages -->
-     <root>
-        <priority value="INFO"/> 
-        <appender-ref ref="STDOUT" /> 
-     </root> 
-    
-</log4j:configuration> 
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration>
+    <Appenders>
+        <Console name="STDOUT" target="SYSTEM_OUT">
+            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Logger name="com.opensymphony.xwork2" level="debug"/>
+        <Logger name="org.apache.struts2" level="debug"/>
+        <Root level="warn">
+            <AppenderRef ref="STDOUT"/>
+        </Root>
+    </Loggers>
+</Configuration>
 ```
 
-Note the above log4j configuration specifies the console as the log target.
+Note the above log4j2 configuration specifies the console as the log target.
 
-__Step 5 - Add Struts 2 Servlet Filter__
+#### Step 5 - Add Struts 2 Servlet Filter
 
 To enable the Struts 2 framework to work with your web application you need to add a Servlet filter class and filter 
 mapping to `web.xml`. Below is the filter and filter-mapping nodes you should add to `web.xml`.
@@ -160,7 +191,7 @@ mapping to `web.xml`. Below is the filter and filter-mapping nodes you should ad
 For more information about configuring the deployment descriptor for Struts 2 see `web.xml`. Note the url-pattern node 
 value is `/*` meaning the Struts 2 filter will be applied to all URLs for this web application.
 
-__Step 6 - Create struts.xml__
+#### Step 6 - Create struts.xml
 
 Struts 2 can use either an XML configuration file or annotations (or both) to specify the relationship between a URL, 
 a Java class, and a view page (such as `index.jsp`). For our basic Struts 2 application, we'll use a minimal xml 
@@ -180,11 +211,9 @@ must be on the web application's root class path).
     <constant name="struts.devMode" value="true" />
 
     <package name="basicstruts2" extends="struts-default">
-
         <action name="index">
             <result>/index.jsp</result>
         </action>
-
     </package>
 
 </struts>
@@ -195,32 +224,28 @@ the browser to `index.jsp`.
 
 For more information about the struts.xml configuration file see `struts.xml`.
 
-__Step 7 - Build and Run the Application__
+#### Step 7 - Build and Run the Application
 
-With all of the above in place run mvn clean package to create the war file. Remove the previously created war file 
-and exploded web application folder from your Servlet container's webapps folder. Copy to your Servlet container's webapps 
-folder the new war you just created.
+Run `mvn jetty:run` to run the web-application using the jetty maven-plugin.
 
-Start up the Servlet container. View the console where you should see numerous debug messages that tell you 
-the Struts 2 framework is being included in the `Basic_Struts2_Mvn` web application.
+View the console where you should see numerous debug messages that tell you the Struts 2 framework is being included in the `basic-struts2` web application.
 
-Open a web browser and go to [http://localhost:8080/Basic_Struts2_Mvn/index.action](http://localhost:8080/Basic_Struts2_Mvn/index.action) 
+Open a web browser and go to [http://localhost:8080/basic-struts/index.action](http://localhost:8080/basic-struts/index.action) 
 (note that's `index.action` not `index.jsp` at the end of the URL). You should see the same web page as when going to 
-[http://localhost:8080/Basic_Struts2_Mvn/index.jsp](http://localhost:8080/Basic_Struts2_Mvn/index.jsp). View the log 
+[http://localhost:8080/basic-struts/index.jsp](http://localhost:8080/basic-struts/index.jsp). View the log 
 messages written to the console and you should find several that discuss `index.action` and `index.jsp`:
 
 **Struts 2 Log Messages**
 
 ```
-com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for namespace / and action name index
 ...
-org.apache.struts2.dispatcher.ServletDispatcherResult.debug:57 - Forwarding to location /index.jsp
+2017-04-17 11:16:01,084 DEBUG [qtp1723848804-22] xwork2.DefaultActionProxy (DefaultActionProxy.java:89) - Creating an DefaultActionProxy for namespace [/] and action name [index]
+...
+2017-04-17 11:16:01,172 DEBUG [qtp1723848804-22] result.ServletDispatcherResult (ServletDispatcherResult.java:131) - Forwarding to location: /index.jsp
+...
 ```
 
-Note that the xwork2 artifact is one of the Jar files that is a transitive dependency for the struts2-core Jar file. 
-The xwork2 library is used heavily by the Struts 2 framework.
-
-__Getting Help__
+### Getting Help
 
 The [Struts 2 user mailing list](/mail.html) is an excellent place to get help.  If you are having a problem getting 
 this Basic Struts 2 application to work search the Struts 2 mailing list. If you don't find an answer to your problem, 


[5/5] struts-site git commit: Merge branch 'pr9'

Posted by lu...@apache.org.
Merge branch 'pr9'


Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/b93572c8
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/b93572c8
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/b93572c8

Branch: refs/heads/master
Commit: b93572c861fb17bd15a4a657475fef7b98f6e6be
Parents: aaa6464 b2e8be3
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Tue Apr 18 07:36:35 2017 +0200
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Tue Apr 18 07:36:35 2017 +0200

----------------------------------------------------------------------
 .../att14974992_Basic_Struts2_Mvn.png           | Bin 18234 -> 0 bytes
 .../attachments/att14974993_Hello.png           | Bin 13038 -> 0 bytes
 .../att14974994_Struts2HelloWorld.png           | Bin 20676 -> 0 bytes
 .../attachments/basic_struts2_maven_jsp.png     | Bin 0 -> 8387 bytes
 .../attachments/helloworld_hello_action.png     | Bin 0 -> 7009 bytes
 .../attachments/helloworld_index_action.png     | Bin 0 -> 9653 bytes
 .../hello-world-using-struts2.md                | 108 ++++++-------
 .../how-to-create-a-struts2-web-application.md  | 151 +++++++++++--------
 8 files changed, 137 insertions(+), 122 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/b93572c8/source/getting-started/hello-world-using-struts2.md
----------------------------------------------------------------------
diff --cc source/getting-started/hello-world-using-struts2.md
index 10a0cec,be719a3..21accab
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@@ -168,19 -158,19 +158,19 @@@ First add the taglib directive at the t
  
  **index.jsp**
  
- ```html
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+ ```jsp
+ <!DOCTYPE html>
+ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
  <%@ taglib prefix="s" uri="/struts-tags" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
 -  <head>
 -    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 -    <title>Basic Struts 2 Application - Welcome</title>
 -  </head>
 -  <body>
 -    <h1>Welcome To Struts 2!</h1>
 -    <p><a href="<s:url action='hello'/>">Hello World</a></p>
 -  </body>
 +    <head>
-         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
++        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 +        <title>Basic Struts 2 Application - Welcome</title>
 +    </head>
 +    <body>
 +        <h1>Welcome To Struts 2!</h1>
 +        <p><a href="<s:url action='hello'/>">Hello World</a></p>
 +    </body>
  </html>
  ```
  

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b93572c8/source/getting-started/how-to-create-a-struts2-web-application.md
----------------------------------------------------------------------


[4/5] struts-site git commit: updated the hello-world-using-struts2 page

Posted by lu...@apache.org.
updated the hello-world-using-struts2 page


Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/b2e8be34
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/b2e8be34
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/b2e8be34

Branch: refs/heads/master
Commit: b2e8be34409c5f31db6fc735d5aa53859142a9c9
Parents: 4ca26c0
Author: Stefaan Dutry <st...@gmail.com>
Authored: Mon Apr 17 17:42:08 2017 +0200
Committer: Stefaan Dutry <st...@gmail.com>
Committed: Mon Apr 17 17:42:08 2017 +0200

----------------------------------------------------------------------
 .../attachments/att14974993_Hello.png           | Bin 13038 -> 0 bytes
 .../att14974994_Struts2HelloWorld.png           | Bin 20676 -> 0 bytes
 .../attachments/helloworld_hello_action.png     | Bin 0 -> 7009 bytes
 .../attachments/helloworld_index_action.png     | Bin 0 -> 9653 bytes
 .../hello-world-using-struts2.md                | 108 +++++++++----------
 5 files changed, 49 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/b2e8be34/source/getting-started/attachments/att14974993_Hello.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/att14974993_Hello.png b/source/getting-started/attachments/att14974993_Hello.png
deleted file mode 100644
index d36de44..0000000
Binary files a/source/getting-started/attachments/att14974993_Hello.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b2e8be34/source/getting-started/attachments/att14974994_Struts2HelloWorld.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/att14974994_Struts2HelloWorld.png b/source/getting-started/attachments/att14974994_Struts2HelloWorld.png
deleted file mode 100644
index 5388697..0000000
Binary files a/source/getting-started/attachments/att14974994_Struts2HelloWorld.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b2e8be34/source/getting-started/attachments/helloworld_hello_action.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/helloworld_hello_action.png b/source/getting-started/attachments/helloworld_hello_action.png
new file mode 100644
index 0000000..6fada81
Binary files /dev/null and b/source/getting-started/attachments/helloworld_hello_action.png differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b2e8be34/source/getting-started/attachments/helloworld_index_action.png
----------------------------------------------------------------------
diff --git a/source/getting-started/attachments/helloworld_index_action.png b/source/getting-started/attachments/helloworld_index_action.png
new file mode 100644
index 0000000..0e98393
Binary files /dev/null and b/source/getting-started/attachments/helloworld_index_action.png differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b2e8be34/source/getting-started/hello-world-using-struts2.md
----------------------------------------------------------------------
diff --git a/source/getting-started/hello-world-using-struts2.md b/source/getting-started/hello-world-using-struts2.md
index dd62365..be719a3 100644
--- a/source/getting-started/hello-world-using-struts2.md
+++ b/source/getting-started/hello-world-using-struts2.md
@@ -6,7 +6,7 @@ title: Hello World using Struts 2
 
 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.
 
-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](#PAGE_14811860)), to create a "Hello World" example, you need to do four things:
+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)
 
@@ -20,17 +20,22 @@ By creating these components, we are separating the work flow into three well-kn
 
 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](#PAGE_14811860) 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 [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.
 
 ### The Code
 
-Let's modify either the basic_struts project to add a model class to store our message, a view that displays our message, an Action class to act as the controller, and a configuration that ties everything together.
+Let's modify the basic-struts project to add the following: 
+
+- a model class to store our message
+- a view that displays our message
+- 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.
 
 #### Step 1 - Create The Model Class MessageStore.java
 
-If you're using the Basic_Struts2_Ant project to start with create the MessageStore class in the src folder and if you're using the Basic_Struts2_Mvn class create the MessageStore class in src/main/java. Be sure to note the package statement below.
+Create the `MessageStore` class in `src/main/java`. Be sure to note the package statement below.
 
 > Note that in the code shown below the JavaDoc comments are omitted. In the download example, JavaDoc comments are included.
 
@@ -40,25 +45,19 @@ If you're using the Basic_Struts2_Ant project to start with create the MessageSt
 package org.apache.struts.helloworld.model;
 
 public class MessageStore {
-	
     private String message;
-
+    
     public MessageStore() {
-        setMessage("Hello Struts User");
+        message = "Hello Struts User";
     }
 
     public String getMessage() {
         return message;
     }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
 }
 ```
 
-Note the use of public set and get methods 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
 
@@ -72,52 +71,45 @@ Note the package and import statements below.
 package org.apache.struts.helloworld.action;
 
 import org.apache.struts.helloworld.model.MessageStore;
+
 import com.opensymphony.xwork2.ActionSupport;
 
 public class HelloWorldAction extends ActionSupport {
-
-    private static final long serialVersionUID = 1L;
-
     private MessageStore messageStore;
 
-    public String execute() throws Exception {
+    public String execute() {
         messageStore = new MessageStore() ;
+        
         return SUCCESS;
     }
 
     public MessageStore getMessageStore() {
         return messageStore;
     }
-
-    public void setMessageStore(MessageStore messageStore) {
-        this.messageStore = messageStore;
-    }
-
 }
 ```
 
-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`.
+In this example, the execute method creates an object of class `MessageStore` and then returns the String constant `SUCCESS`.
 
-Note also the public getter and setter methods 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 get and set methods.
+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 `WebContent`�folder (if using Ant) or in `src/main/webapp` (if using Maven).
+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**
 
-```html
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+```jsp
+<!DOCTYPE html>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>Hello World!</title>
   </head>
-
   <body>
     <h2><s:property value="messageStore.message" /></h2>
   </body>
@@ -134,47 +126,45 @@ We'll learn more about tags in the next tutorial. See the _Struts Tags_  for mor
 
 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**
 
 ```xml
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
-
+		"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+		"http://struts.apache.org/dtds/struts-2.5.dtd">
 <struts>
+    <constant name="struts.devMode" value="true" />
 
-  <constant name="struts.devMode" value="true" />
-
-  <package name="basicstruts2" extends="struts-default">
-    <action name="index">
-      <result>/index.jsp</result>
-    </action>
+    <package name="basicstruts2" extends="struts-default">
+        <action name="index">
+            <result>/index.jsp</result>
+        </action>
 		
-    <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
-      <result name="success">/HelloWorld.jsp</result>
-    </action>
-  </package>
+        <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
+            <result name="success">/HelloWorld.jsp</result>
+        </action>
+    </package>
 </struts>
 ```
 
 #### Step 5 - Create The URL Action
 
-In index.jsp (see WebContent folder for Ant project and src/main/webapp for Mvn project) let's add an Action URL the user can click on 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:
 
 **index.jsp**
 
-```html
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+```jsp
+<!DOCTYPE html>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>Basic Struts 2 Application - Welcome</title>
   </head>
   <body>
@@ -184,31 +174,31 @@ 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, 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 clean package` to create the war file.
+Execute `mvn jetty:run` to run the application.
 
-Copy the war file to your Servlet container. After your Servlet container successfully deploys the war file 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:
 
-![Struts2HelloWorld.png](attachments/att14974994_Struts2HelloWorld.png)
+![helloworld_index_action.png](attachments/helloworld_index_action.png)
 
 Click on the Hello World link and you should get the HelloWorld.jsp page:
 
-![Hello.png](attachments/att14974993_Hello.png)
+![helloworld_hello_action.png](attachments/helloworld_hello_action.png)
 
 ### How the Code Works
 
-Your browser sends to the web server a request for the URL [http://localhost:8080/Hello_World_Struts2_Ant/hello.action](http://localhost:8080/Hello_World_Struts2_Ant/hello.action).
+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.ng.filter.StrutsPrepareAndExecuteFilter`, including the `*.action` requests. The StrutsPrepareAndExecuteFilter is the entry point into the framework.
+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`. 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`.
+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`, and the tag merges into the response the value of the message attribute.
+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.