Modified: websites/production/struts/content/docs/else.html ============================================================================== --- websites/production/struts/content/docs/else.html (original) +++ websites/production/struts/content/docs/else.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all();
Modified: websites/production/struts/content/docs/elseif.html ============================================================================== --- websites/production/struts/content/docs/elseif.html (original) +++ websites/production/struts/content/docs/elseif.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/email-validator.html ============================================================================== --- websites/production/struts/content/docs/email-validator.html (original) +++ websites/production/struts/content/docs/email-validator.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); @@ -144,7 +145,7 @@ under the License. <p>The regular expression used to validate that the string is an email address is:</p> <p></p><pre> -\\b^['_a-z0-9-\\+]<span style="text-decoration: underline; ">(\\.['_a-z0-9-\\+]</span>)<strong>@[a-z0-9-]<span style="text-decoration: underline; ">(\\.[a-z0-9-]</span>)</strong>\\.([a-z]{2}|aero|arpa|asia|biz|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|nato|net|org|pro|tel|travel|xxx|tech|cat)$\\b +\\b^['_a-z0-9-\\+]<span style="text-decoration: underline; ">(\\.['_a-z0-9-\\+]</span>)<strong>@[a-z0-9-]<span style="text-decoration: underline; ">(\\.[a-z0-9-]</span>)</strong>\\.([a-z]{2,6})$\\b </pre> <p>You can also specify expression, caseSensitive and trim params as a OGNL expression, see the example below.</p> Modified: websites/production/struts/content/docs/emailvalidator-annotation.html ============================================================================== --- websites/production/struts/content/docs/emailvalidator-annotation.html (original) +++ websites/production/struts/content/docs/emailvalidator-annotation.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/embedded-jsp-plugin.html ============================================================================== --- websites/production/struts/content/docs/embedded-jsp-plugin.html (original) +++ websites/production/struts/content/docs/embedded-jsp-plugin.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/exception-configuration.html ============================================================================== --- websites/production/struts/content/docs/exception-configuration.html (original) +++ websites/production/struts/content/docs/exception-configuration.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/exception-handling.html ============================================================================== --- websites/production/struts/content/docs/exception-handling.html (original) +++ websites/production/struts/content/docs/exception-handling.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/exception-interceptor.html ============================================================================== --- websites/production/struts/content/docs/exception-interceptor.html (original) +++ websites/production/struts/content/docs/exception-interceptor.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/exclude-parameters.html ============================================================================== --- websites/production/struts/content/docs/exclude-parameters.html (original) +++ websites/production/struts/content/docs/exclude-parameters.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/execute-and-wait-interceptor.html ============================================================================== --- websites/production/struts/content/docs/execute-and-wait-interceptor.html (original) +++ websites/production/struts/content/docs/execute-and-wait-interceptor.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/exposing-framework-objects-to-jstl-with-a-jstl-and-displaytag-example.html ============================================================================== --- websites/production/struts/content/docs/exposing-framework-objects-to-jstl-with-a-jstl-and-displaytag-example.html (original) +++ websites/production/struts/content/docs/exposing-framework-objects-to-jstl-with-a-jstl-and-displaytag-example.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/expression-validator.html ============================================================================== --- websites/production/struts/content/docs/expression-validator.html (original) +++ websites/production/struts/content/docs/expression-validator.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/expressionvalidator-annotation.html ============================================================================== --- websites/production/struts/content/docs/expressionvalidator-annotation.html (original) +++ websites/production/struts/content/docs/expressionvalidator-annotation.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/extending-an-application-with-custom-plugins.html ============================================================================== --- websites/production/struts/content/docs/extending-an-application-with-custom-plugins.html (original) +++ websites/production/struts/content/docs/extending-an-application-with-custom-plugins.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/extending-themes.html ============================================================================== --- websites/production/struts/content/docs/extending-themes.html (original) +++ websites/production/struts/content/docs/extending-themes.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); @@ -139,11 +140,11 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1480661710298 {padding: 0px;} -div.rbtoc1480661710298 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1480661710298 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1488973561179 {padding: 0px;} +div.rbtoc1488973561179 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1488973561179 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1480661710298"> +/*]]>*/</style></p><div class="toc-macro rbtoc1488973561179"> <ul class="toc-indentation"><li><a shape="rect" href="#ExtendingThemes-CreatingaNewThemefromScratch">Creating a New Theme from Scratch</a></li><li><a shape="rect" href="#ExtendingThemes-WrappinganExistingTheme">Wrapping an Existing Theme</a></li><li><a shape="rect" href="#ExtendingThemes-ExtendinganExistingTheme">Extending an Existing Theme</a></li><li><a shape="rect" href="#ExtendingThemes-Specialparameters">Special parameters</a></li></ul> </div><p>Most often, an application may just need to override a template (see <a shape="rect" href="template-loading.html">Template Loading</a>) so that a certain control renders differently. Or, an application may need to add a new template to an existing theme. Other times, you might want to create an entirely new theme, perhaps because you are building a rich set of unique and reusable templates for your organization.</p><p>There are three ways to create new themes:</p><ul><li>Create a new theme from scratch (<strong>hard!</strong>)</li><li>Wrap an existing theme</li><li>Extend an existing theme</li></ul><h2 id="ExtendingThemes-CreatingaNewThemefromScratch">Creating a New Theme from Scratch</h2><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Keep it simple, Sam!</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It's probably never a go od idea to create a new theme from scratch. Instead, use the <a shape="rect" href="simple-theme.html">simple theme</a> as a starting point. The simple theme provides just enough foundation to make it easy to create new controls by extending or wrapping the basic controls. Before starting a new theme, be sure to review the source templates for all of the provided themes. The existing themes are your best guide to creating new themes.</p></div></div><h2 id="ExtendingThemes-WrappinganExistingTheme">Wrapping an Existing Theme</h2><p>The <a shape="rect" href="xhtml-theme.html">xhtml theme</a> provides several good examples of the "wrapping" technique. The <a shape="rect" href="simple-theme.html">simple theme</a> renders the basic control. The xhtml theme "dresses up" many of the controls by adding a header and footer.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Wrapping a control</b></div><div clas s="codeContent panelContent pdl"> <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"><#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" /> Modified: websites/production/struts/content/docs/fielderror.html ============================================================================== --- websites/production/struts/content/docs/fielderror.html (original) +++ websites/production/struts/content/docs/fielderror.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/fieldexpression-validator.html ============================================================================== --- websites/production/struts/content/docs/fieldexpression-validator.html (original) +++ websites/production/struts/content/docs/fieldexpression-validator.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/fieldexpressionvalidator-annotation.html ============================================================================== --- websites/production/struts/content/docs/fieldexpressionvalidator-annotation.html (original) +++ websites/production/struts/content/docs/fieldexpressionvalidator-annotation.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/file-upload-interceptor.html ============================================================================== --- websites/production/struts/content/docs/file-upload-interceptor.html (original) +++ websites/production/struts/content/docs/file-upload-interceptor.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/file-upload.html ============================================================================== --- websites/production/struts/content/docs/file-upload.html (original) +++ websites/production/struts/content/docs/file-upload.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); @@ -139,11 +140,11 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> <div id="ConfluenceContent"><p>The Struts 2 framework provides built-in support for processing file uploads that conform to <a shape="rect" class="external-link" href="http://www.ietf.org/rfc/rfc1867.txt" rel="nofollow">RFC 1867</a>, "Form-based File Upload in HTML". When correctly configured the framework will pass uploaded file(s) into your Action class. Support for individual and multiple file uploads are provided. When a file is uploaded it will typically be stored in a temporary directory. Uploaded files should be processed or moved by your Action class to ensure the data is not lost. Be aware that servers may have a security policy in place that prohibits you from writing to directories other than the temporary directory and the directories that belong to your web application.</p><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1480661996121 {padding: 0px;} -div.rbtoc1480661996121 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1480661996121 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1488974148361 {padding: 0px;} +div.rbtoc1488974148361 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1488974148361 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1480661996121"> +/*]]>*/</style></p><div class="toc-macro rbtoc1488974148361"> <ul class="toc-indentation"><li><a shape="rect" href="#FileUpload-Dependencies">Dependencies</a></li><li><a shape="rect" href="#FileUpload-BasicUsage">Basic Usage</a></li><li><a shape="rect" href="#FileUpload-UploadingMultipleFiles">Uploading Multiple Files</a> <ul class="toc-indentation"><li><a shape="rect" href="#FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple Files using Arrays</a></li><li><a shape="rect" href="#FileUpload-UploadingMultipleFilesusingLists">Uploading Multiple Files using Lists</a></li></ul> </li><li><a shape="rect" href="#FileUpload-AdvancedConfiguration">Advanced Configuration</a> Modified: websites/production/struts/content/docs/file.html ============================================================================== --- websites/production/struts/content/docs/file.html (original) +++ websites/production/struts/content/docs/file.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/form-tags.html ============================================================================== --- websites/production/struts/content/docs/form-tags.html (original) +++ websites/production/struts/content/docs/form-tags.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/form-validation-using-xml.html ============================================================================== --- websites/production/struts/content/docs/form-validation-using-xml.html (original) +++ websites/production/struts/content/docs/form-validation-using-xml.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/form-validation.html ============================================================================== --- websites/production/struts/content/docs/form-validation.html (original) +++ websites/production/struts/content/docs/form-validation.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/form.html ============================================================================== --- websites/production/struts/content/docs/form.html (original) +++ websites/production/struts/content/docs/form.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/formatting-dates-and-numbers.html ============================================================================== --- websites/production/struts/content/docs/formatting-dates-and-numbers.html (original) +++ websites/production/struts/content/docs/formatting-dates-and-numbers.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/freemarker-result.html ============================================================================== --- websites/production/struts/content/docs/freemarker-result.html (original) +++ websites/production/struts/content/docs/freemarker-result.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/freemarker-support.html ============================================================================== --- websites/production/struts/content/docs/freemarker-support.html (original) +++ websites/production/struts/content/docs/freemarker-support.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/freemarker-tags.html ============================================================================== --- websites/production/struts/content/docs/freemarker-tags.html (original) +++ websites/production/struts/content/docs/freemarker-tags.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/freemarker.html ============================================================================== --- websites/production/struts/content/docs/freemarker.html (original) +++ websites/production/struts/content/docs/freemarker.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); @@ -139,11 +140,11 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1480661779052 {padding: 0px;} -div.rbtoc1480661779052 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1480661779052 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1488973678190 {padding: 0px;} +div.rbtoc1488973678190 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1488973678190 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1480661779052"> +/*]]>*/</style></p><div class="toc-macro rbtoc1488973678190"> <ul class="toc-indentation"><li><a shape="rect" href="#FreeMarker-GettingStarted">Getting Started</a></li><li><a shape="rect" href="#FreeMarker-Servlet/JSPScopedObjects">Servlet / JSP Scoped Objects</a> <ul class="toc-indentation"><li><a shape="rect" href="#FreeMarker-ApplicationScopeAttribute">Application Scope Attribute</a></li><li><a shape="rect" href="#FreeMarker-SessionScopeAttribute">Session Scope Attribute</a></li><li><a shape="rect" href="#FreeMarker-RequestScopeAttribute">Request Scope Attribute</a></li><li><a shape="rect" href="#FreeMarker-RequestParameter">Request Parameter</a></li><li><a shape="rect" href="#FreeMarker-Contextparameter">Context parameter</a></li></ul> </li><li><a shape="rect" href="#FreeMarker-TemplateLoading">Template Loading</a></li><li><a shape="rect" href="#FreeMarker-VariableResolution">Variable Resolution</a></li><li><a shape="rect" href="#FreeMarker-TagSupport">Tag Support</a></li><li><a shape="rect" href="#FreeMarker-TipsandTricks">Tips and Tricks</a> Modified: websites/production/struts/content/docs/generator.html ============================================================================== --- websites/production/struts/content/docs/generator.html (original) +++ websites/production/struts/content/docs/generator.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/glassfish-2x.html ============================================================================== --- websites/production/struts/content/docs/glassfish-2x.html (original) +++ websites/production/struts/content/docs/glassfish-2x.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/google-app-engine-gae.html ============================================================================== --- websites/production/struts/content/docs/google-app-engine-gae.html (original) +++ websites/production/struts/content/docs/google-app-engine-gae.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/groovyresult.html ============================================================================== --- websites/production/struts/content/docs/groovyresult.html (original) +++ websites/production/struts/content/docs/groovyresult.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/guides.html ============================================================================== --- websites/production/struts/content/docs/guides.html (original) +++ websites/production/struts/content/docs/guides.html Wed Mar 8 12:06:28 2017 @@ -125,10 +125,10 @@ under the License. <div class="pagecontent"> <div class="wiki-content"> - <div id="ConfluenceContent"><p>Our in-depth guides focus on specific areas of the framework, such as Views, the Core framework, and Third-party Extensions.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>We started work on a new <a shape="rect" href="user-guide.html">User Guide</a>, that should simplify learning process. Please feel free to contribute!</p></div></div><h2 id="Guides-CoreDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13945"><a shape="rect" href="core-developers-guide.html">Core Developers Guide</a></h2><p>Struts 2 processes requests using three core types: <a shape="rect" href="interceptor-configuration.html">interceptors</a>, <a shape="rect" href="action-configuration.html">actions</a>, and <a shape="rect" href="result-configuration.html">re sults</a>. Each may be configured via XML or annotations.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="tutorials.html">Tutorials</a> - Read me first!</li><li>Developing Applications with Struts 2<ul><li><a shape="rect" href="nutshell.html">Nutshell</a></li><li><a shape="rect" href="ajax.html">AJAX</a></li><li><a shape="rect" href="dependency-injection.html">Dependency Injection</a></li><li><a shape="rect" href="profiling.html">Profiling</a></li><li><a shape="rect" href="debugging.html">Debugging</a></li><li><a shape="rect" href="devmode.html">Development Mode</a></li></ul></li><li>Configuration<ul><li><a shape="rect" href="convention-plugin.html">Configuration by Convention</a></li><li><a shape="rect" href="annotations.html">Annotations</a></li><li><a shape="rect" href="configuration-elements.html">Configuration Elements</a><ul><li><a shape="rect" href="action-configuration.html">A ctions</a>, <a shape="rect" href="wildcard-mappings.html">Wildcard Mappings</a>, <a shape="rect" href="bean-configuration.html">Beans</a>, <a shape="rect" href="constant-configuration.html">Constants</a></li><li><a shape="rect" href="exception-configuration.html">Exceptions</a>, <a shape="rect" href="include-configuration.html">Includes</a>, <a shape="rect" href="interceptor-configuration.html">Interceptors</a></li><li><a shape="rect" href="namespace-configuration.html">Namespaces</a>, <a shape="rect" href="package-configuration.html">Packages</a>, <a shape="rect" href="result-configuration.html">Results</a></li><li><a shape="rect" href="unknown-handlers.html">Unknown Handlers</a>, <a shape="rect" href="dispatcher.html">Dispatcher</a></li></ul></li><li><a shape="rect" href="configuration-files.html">Configuration Files</a><ul><li><a shape="rect" href="webxml.html">web.xml</a></li><li><a shape="rect" href="strutsxml.html">struts.xml</a></li><li><a shape="rect" href="strutsproperties. html">struts.properties</a></li><li><a shape="rect" href="struts-defaultxml.html">struts-default.xml</a></li><li><a shape="rect" href="velocityproperties.html">velocity.properties</a></li><li><a shape="rect" href="struts-defaultvm.html">struts-default.vm</a></li></ul></li><li><a shape="rect" href="application-servers.html">Application Servers</a></li><li><a shape="rect" href="performance-tuning.html">Performance Tuning</a></li></ul></li><li><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" href="security.html">Security</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="testing-actions.html">Testing Actions</a><ul><li><a shape="rect" class="external-link" href="https://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-sprin g-junit/" rel="nofollow">(arsenalist)</a></li><li><a shape="rect" class="external-link" href="http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html" rel="nofollow">(rosa)</a></li></ul></li><li><a shape="rect" href="interceptors.html">Interceptors</a><ul><li><a shape="rect" href="writing-interceptors.html">Writing Interceptors</a></li><li><a shape="rect" href="parameters-interceptor.html">Excluding Parameters</a></li></ul></li><li>Actions<ul><li><a shape="rect" href="model-driven.html">Model Driven</a></li><li><a shape="rect" href="action-chaining.html">Action Chaining</a></li><li><a shape="rect" href="actioneventlistener.html">ActionEventListener</a></li></ul></li><li>Results<ul><li><a shape="rect" href="result-types.html">Result Types</a></li><li><a shape="rect" href="dispatcherlistener.html">DispatcherListener</a></li><li><a shape="rect" href="preresultlistener.html">PreResultListener</a></li></ul></li><li><a shape="rect" href="validation.html">Validation</a></li><li> <a shape="rect" href="localization.html">Localization</a><ul><li><a shape="rect" href="formatting-dates-and-numbers.html">Formatting Dates and Numbers</a></li></ul></li><li><a shape="rect" href="type-conversion.html">Type Conversion</a></li><li><a shape="rect" href="static-content.html">Static Content</a></li><li>Portlets<ul><li><a shape="rect" href="struts-2-portlet-tutorial.html">Tutorial</a></li><li><a shape="rect" href="portlet-plugin.html">Configuration/Documentation</a></li></ul></li><li><a shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" href="faqs.html">FAQs</a><ul><li><a shape="rect" href="struts-2-maven-archetypes.html">Struts 2 Maven Archetypes</a></li><li><a shape="rect" href="cookbook.html">Cookbook</a></li></ul></li><li><a shape="rect" class="external-link" href="http://struts.apache.org/maven/struts2-core/apidocs/index.html">Javadoc APIs</a></li></ul></td></tr></tbody></table></div><h2 id="Guides-TagDevelopersGuidehttps://cwiki.apache.org/confluenc e/pages/viewpage.action?pageId=14324"><a shape="rect" href="tag-developers-guide.html">Tag Developers Guide</a></h2><p>The framework offers a flexible view layer that supports multiple view technologies, including JSP, FreeMaker, and Velocity.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="struts-tags.html">Struts Tags</a><ul><li><a shape="rect" href="generic-tags.html">Generic Tags</a></li><li><a shape="rect" href="ui-tags.html">UI Tags</a></li><li><a shape="rect" href="themes-and-templates.html">Themes and Templates</a></li><li><a shape="rect" href="tag-reference.html">Tag Reference</a></li><li><a shape="rect" href="ajax-tags.html">Ajax Tags</a><ul><li><a shape="rect" href="ajax-and-javascript-recipes.html">Ajax and JavaScript Recipes</a></li></ul></li></ul></li><li><a shape="rect" href="ognl.html">OGNL</a></li><li><a shape="rect" href="tag-syntax.html">Tag Syntax</a></li><li><a sh ape="rect" href="alt-syntax.html">Alt Syntax</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="jsp.html">JSP</a><ul><li><a shape="rect" href="jsp-tags.html">specific tags</a></li></ul></li><li><a shape="rect" href="freemarker.html">FreeMarker</a><ul><li><a shape="rect" href="freemarker-tags.html">specific tags</a></li></ul></li><li><a shape="rect" href="velocity.html">Velocity</a><ul><li><a shape="rect" href="velocity-tags.html">specific tags</a></li></ul></li></ul></td></tr></tbody></table></div><h2 id="Guides-PluginDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44163"><a shape="rect" href="plugin-developers-guide.html">Plugin Developers Guide</a></h2><p>Apache Struts 2 provides a simple <a shape="rect" href="plugins.html">plugin architecture</a> so that developers can extend the framework just by adding a JAR to the application's classpath. Since plugins are contained in a JAR, they are easy to share w ith others. Several plugins are bundled with the framework, and others are available from third-party sources.</p><ul><li><a shape="rect" href="plugins.html">Plugins</a></li><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li></ul><h3 id="Guides-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind Plugin</a> (< 2.5)</li><li><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href=" embedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21+)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span>< 2.5<span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li><li><a shape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a> <span>(</span>< 2.5<span>)</span></li><li><a shape="rect" href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" href="tiles-plugin.html">Tiles Plugin</a></li><li><a shape="rect" href="tiles-3-plugin.html">Tiles 3 Plugin</a> (< 2.5)</li></ul></td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and third-party plugi ns, visit the <a shape="rect" class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2 id="Guides-ArchitectsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=45478"><a shape="rect" href="architects-guide.html">Architects Guide</a></h2><p> + <div id="ConfluenceContent"><p>Our in-depth guides focus on specific areas of the framework, such as Views, the Core framework, and Third-party Extensions.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>We started work on a new <a shape="rect" href="user-guide.html">User Guide</a>, that should simplify learning process. Please feel free to contribute!</p></div></div><h2 id="Guides-CoreDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13945"><a shape="rect" href="core-developers-guide.html">Core Developers Guide</a></h2><p>Struts 2 processes requests using three core types: <a shape="rect" href="interceptor-configuration.html">interceptors</a>, <a shape="rect" href="action-configuration.html">actions</a>, and <a shape="rect" href="result-configuration.html">re sults</a>. Each may be configured via XML or annotations.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="tutorials.html">Tutorials</a> - Read me first!</li><li>Developing Applications with Struts 2<ul><li><a shape="rect" href="nutshell.html">Nutshell</a></li><li><a shape="rect" href="ajax.html">AJAX</a></li><li><a shape="rect" href="dependency-injection.html">Dependency Injection</a></li><li><a shape="rect" href="profiling.html">Profiling</a></li><li><a shape="rect" href="debugging.html">Debugging</a></li><li><a shape="rect" href="devmode.html">Development Mode</a></li></ul></li><li>Configuration<ul><li><a shape="rect" href="convention-plugin.html">Configuration by Convention</a></li><li><a shape="rect" href="annotations.html">Annotations</a></li><li><a shape="rect" href="configuration-elements.html">Configuration Elements</a><ul><li><a shape="rect" href="action-configuration.html">A ctions</a>, <a shape="rect" href="wildcard-mappings.html">Wildcard Mappings</a>, <a shape="rect" href="bean-configuration.html">Beans</a>, <a shape="rect" href="constant-configuration.html">Constants</a></li><li><a shape="rect" href="exception-configuration.html">Exceptions</a>, <a shape="rect" href="include-configuration.html">Includes</a>, <a shape="rect" href="interceptor-configuration.html">Interceptors</a></li><li><a shape="rect" href="namespace-configuration.html">Namespaces</a>, <a shape="rect" href="package-configuration.html">Packages</a>, <a shape="rect" href="result-configuration.html">Results</a></li><li><a shape="rect" href="unknown-handlers.html">Unknown Handlers</a>, <a shape="rect" href="dispatcher.html">Dispatcher</a></li></ul></li><li><a shape="rect" href="configuration-files.html">Configuration Files</a><ul><li><a shape="rect" href="webxml.html">web.xml</a></li><li><a shape="rect" href="strutsxml.html">struts.xml</a></li><li><a shape="rect" href="strutsproperties. html">struts.properties</a></li><li><a shape="rect" href="struts-defaultxml.html">struts-default.xml</a></li><li><a shape="rect" href="velocityproperties.html">velocity.properties</a></li><li><a shape="rect" href="struts-defaultvm.html">struts-default.vm</a></li></ul></li><li><a shape="rect" href="application-servers.html">Application Servers</a></li><li><a shape="rect" href="performance-tuning.html">Performance Tuning</a></li></ul></li><li><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" href="security.html">Security</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="testing-actions.html">Testing Actions</a><ul><li><a shape="rect" class="external-link" href="https://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-sprin g-junit/" rel="nofollow">(arsenalist)</a></li><li><a shape="rect" class="external-link" href="http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html" rel="nofollow">(rosa)</a></li></ul></li><li><a shape="rect" href="interceptors.html">Interceptors</a><ul><li><a shape="rect" href="writing-interceptors.html">Writing Interceptors</a></li><li><a shape="rect" href="parameters-interceptor.html">Excluding Parameters</a></li></ul></li><li>Actions<ul><li><a shape="rect" href="model-driven.html">Model Driven</a></li><li><a shape="rect" href="action-chaining.html">Action Chaining</a></li><li><a shape="rect" href="actioneventlistener.html">ActionEventListener</a></li></ul></li><li>Results<ul><li><a shape="rect" href="result-types.html">Result Types</a></li><li><a shape="rect" href="dispatcherlistener.html">DispatcherListener</a></li><li><a shape="rect" href="preresultlistener.html">PreResultListener</a></li></ul></li><li><a shape="rect" href="validation.html">Validation</a></li><li> <a shape="rect" href="localization.html">Localization</a><ul><li><a shape="rect" href="formatting-dates-and-numbers.html">Formatting Dates and Numbers</a></li></ul></li><li><a shape="rect" href="type-conversion.html">Type Conversion</a></li><li><a shape="rect" href="static-content.html">Static Content</a></li><li>Portlets<ul><li><a shape="rect" href="struts-2-portlet-tutorial.html">Tutorial</a></li><li><a shape="rect" href="portlet-plugin.html">Configuration/Documentation</a></li></ul></li><li><a shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" href="faqs.html">FAQs</a><ul><li><a shape="rect" href="struts-2-maven-archetypes.html">Struts 2 Maven Archetypes</a></li><li><a shape="rect" href="cookbook.html">Cookbook</a></li></ul></li><li><a shape="rect" class="external-link" href="http://struts.apache.org/maven/struts2-core/apidocs/index.html">Javadoc APIs</a></li></ul></td></tr></tbody></table></div><h2 id="Guides-TagDevelopersGuidehttps://cwiki.apache.org/confluenc e/pages/viewpage.action?pageId=14324"><a shape="rect" href="tag-developers-guide.html">Tag Developers Guide</a></h2><p>The framework offers a flexible view layer that supports multiple view technologies, including JSP, FreeMaker, and Velocity.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="struts-tags.html">Struts Tags</a><ul><li><a shape="rect" href="generic-tags.html">Generic Tags</a></li><li><a shape="rect" href="ui-tags.html">UI Tags</a></li><li><a shape="rect" href="themes-and-templates.html">Themes and Templates</a></li><li><a shape="rect" href="tag-reference.html">Tag Reference</a></li><li><a shape="rect" href="ajax-tags.html">Ajax Tags</a><ul><li><a shape="rect" href="ajax-and-javascript-recipes.html">Ajax and JavaScript Recipes</a></li></ul></li></ul></li><li><a shape="rect" href="ognl.html">OGNL</a></li><li><a shape="rect" href="tag-syntax.html">Tag Syntax</a></li><li><a sh ape="rect" href="alt-syntax.html">Alt Syntax</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="jsp.html">JSP</a><ul><li><a shape="rect" href="jsp-tags.html">specific tags</a></li></ul></li><li><a shape="rect" href="freemarker.html">FreeMarker</a><ul><li><a shape="rect" href="freemarker-tags.html">specific tags</a></li></ul></li><li><a shape="rect" href="velocity.html">Velocity</a><ul><li><a shape="rect" href="velocity-tags.html">specific tags</a></li></ul></li></ul></td></tr></tbody></table></div><h2 id="Guides-PluginDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44163"><a shape="rect" href="plugin-developers-guide.html">Plugin Developers Guide</a></h2><p>Apache Struts 2 provides a simple <a shape="rect" href="plugins.html">plugin architecture</a> so that developers can extend the framework just by adding a JAR to the application's classpath. Since plugins are contained in a JAR, they are easy to share w ith others. Several plugins are bundled with the framework, and others are available from third-party sources.</p><ul><li><a shape="rect" href="plugins.html">Plugins</a></li><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li></ul><h3 id="Guides-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind Plugin</a> (< 2.5)</li><li><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href=" embedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21 - 2.5.2)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span>< 2.5<span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li ><li><a shape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> >(2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> >(2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph >Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh >Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring >Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 >Plugin</a> <span>(</span>< 2.5<span>)</span></li><li><a shape="rect" >href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" >href="tiles-plugin.html">Tiles Plugin</a></li><li><a shape="rect" >href="tiles-3-plugin.html">Tiles 3 Plugin</a> (< >2.5)</li></ul></td></tr></tbody></table></div><p><img class="emoticon >emoticon-tick" >src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" > data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and >third-part y plugins, visit the <a shape="rect" class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2 id="Guides-ArchitectsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=45478"><a shape="rect" href="architects-guide.html">Architects Guide</a></h2><p> </p><ul><li><a shape="rect" href="big-picture.html">Big Picture</a> <ul><li><a shape="rect" href="objectfactory.html">ObjectFactory</a></li><li><a shape="rect" href="actionmapper.html">ActionMapper</a></li><li><a shape="rect" href="action-proxy-actionproxy-factory.html">Action Proxy & ActionProxy Factory</a></li><li><a shape="rect" href="configuration-provider-configuration.html">Configuration Provider & Configuration</a></li></ul> - </li></ul><h2 id="Guides-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981"><a shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a shape="rect" href="version-notes-23281.html">Version Notes 2.3.28.1</a></li><li><a shape="rect" href="version-notes-2328.html">Version Notes 2.3.28</a></li><li><a shape="rect" href="version-notes-23243.html">Version Notes 2.3.24.3</a></li><li><a shape="rect" href="version-notes-23241.html">Version Notes 2.3.24.1</a></li><li><a shape="rect" href="version-notes-2324.html">Version Notes 2.3.24</a></li><li><a shape="rect" href="version-notes-23203.html">Version Notes 2.3.20.3</a></li><li><a shape="rect" href="version-notes-23201.html">Version Notes 2.3.20.1</a></li><li><a shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect " href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="Guides-VersionNotes2.2.x">Version Notes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</ a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1.x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="Guides-ReleaseNotes2.0.x">Release Notes 2.0.x< /h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release Notes 2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes 2.0.5</a></li><li><a shape="rect" href="release -notes-204.html">Release Notes 2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes 2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes 2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes 2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes 2.0.0</a></li></ul><h3 id="Guides-Struts1toStruts2">Struts 1 to Struts 2</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encounter ed during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="Guides-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.infoq.com/news/migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Se p 2006)</p></td></tr></tbody></table></div><h4 id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="Guides-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="key-changes-from-webwork-2.html">Key Changes From WebWork 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="webwork-2-migration-strategies.html">WebWork 2 Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 applications to Struts 2.</p></td></tr></tbody></table></div><h2 id="Guides-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041"><a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p> + </li></ul><h2 id="Guides-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981"><a shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a shape="rect" href="version-notes-25101.html">Version Notes 2.5.10.1</a></li><li><a shape="rect" href="version-notes-2510.html">Version Notes 2.5.10</a></li><li><a shape="rect" href="version-notes-258.html">Version Notes 2.5.8</a></li><li><a shape="rect" href="version-notes-255.html">Version Notes 2.5.5</a></li><li><a shape="rect" href="version-notes-252.html">Version Notes 2.5.2</a></li><li><a shape="rect" href="version-notes-251.html">Version Notes 2.5.1</a></li><li><a shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a shape="rect" href="version-notes-2332.html">Version Notes 2.3.32</a></li><li><a shape="rect" href="v ersion-notes-2331.html">Version Notes 2.3.31</a></li><li><a shape="rect" href="version-notes-2330.html">Version Notes 2.3.30</a></li><li><a shape="rect" href="version-notes-2329.html">Version Notes 2.3.29</a></li><li><a shape="rect" href="version-notes-23281.html">Version Notes 2.3.28.1</a></li><li><a shape="rect" href="version-notes-2328.html">Version Notes 2.3.28</a></li><li><a shape="rect" href="version-notes-23243.html">Version Notes 2.3.24.3</a></li><li><a shape="rect" href="version-notes-23241.html">Version Notes 2.3.24.1</a></li><li><a shape="rect" href="version-notes-2324.html">Version Notes 2.3.24</a></li><li><a shape="rect" href="version-notes-23203.html">Version Notes 2.3.20.3</a></li><li><a shape="rect" href="version-notes-23201.html">Version Notes 2.3.20.1</a></li><li><a shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162. html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 id="Guides-VersionNotes2.2.x">Version Notes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1. x">Version Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 id="Guides-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" href="release- notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release Notes 2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes 2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes 2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes 2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes 2.0.2</a></li>< li><a shape="rect" href="release-notes-201.html">Release Notes 2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes 2.0.0</a></li></ul><h3 id="Guides-Struts2.3toStruts2.5">Struts 2.3 to Struts 2.5</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="struts-23-to-25-migration.html">Struts 2.3 to 2.5 migration</a></p></th><td colspan="1" rowspan="1" class="confluenceTd">Migration guide.</td></tr></tbody></table></div><h3 id="Guides-Struts1toStruts2">Struts 1 to Struts 2</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect " href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-strategies.html">Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration process.</p></td></tr></tbody></table></div><h4 id="Guides-Tutorials">Tutorials</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.infoq.com/news/ migrating-struts2" rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 2006)</p></td></tr></tbody></table></div><h4 id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://struts.apache.org/roadmap.html#new">Roadmap FAQ</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" class="external-link" href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of events</p></td></tr></tbody></table></div><h3 id="Guides-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div class="tabl e-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="key-changes-from-webwork-2.html">Key Changes From WebWork 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="webwork-2-migration-strategies.html">WebWork 2 Migration Strategies</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 applications to Struts 2.</p></td></tr></tbody></table></div><h2 id="Guides-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041"><a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p> </p><h3 id="Guides-Source">Source</h3> Modified: websites/production/struts/content/docs/handling-file-uploads.html ============================================================================== --- websites/production/struts/content/docs/handling-file-uploads.html (original) +++ websites/production/struts/content/docs/handling-file-uploads.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/head.html ============================================================================== --- websites/production/struts/content/docs/head.html (original) +++ websites/production/struts/content/docs/head.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/hello-world-using-struts-2.html ============================================================================== --- websites/production/struts/content/docs/hello-world-using-struts-2.html (original) +++ websites/production/struts/content/docs/hello-world-using-struts-2.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/hello-world.html ============================================================================== --- websites/production/struts/content/docs/hello-world.html (original) +++ websites/production/struts/content/docs/hello-world.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/hibernateandspringenabledexecuteandwaitinterceptor.html ============================================================================== --- websites/production/struts/content/docs/hibernateandspringenabledexecuteandwaitinterceptor.html (original) +++ websites/production/struts/content/docs/hibernateandspringenabledexecuteandwaitinterceptor.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/hidden.html ============================================================================== --- websites/production/struts/content/docs/hidden.html (original) +++ websites/production/struts/content/docs/hidden.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/how-can-i-fix-the-attribute-short-circuit-error-message.html ============================================================================== --- websites/production/struts/content/docs/how-can-i-fix-the-attribute-short-circuit-error-message.html (original) +++ websites/production/struts/content/docs/how-can-i-fix-the-attribute-short-circuit-error-message.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all(); Modified: websites/production/struts/content/docs/how-can-i-put-a-string-literal-in-a-javascript-call-for-instance-in-an-onchange-attribute.html ============================================================================== --- websites/production/struts/content/docs/how-can-i-put-a-string-literal-in-a-javascript-call-for-instance-in-an-onchange-attribute.html (original) +++ websites/production/struts/content/docs/how-can-i-put-a-string-literal-in-a-javascript-call-for-instance-in-an-onchange-attribute.html Wed Mar 8 12:06:28 2017 @@ -43,6 +43,7 @@ under the License. <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script> <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script> + <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' type='text/javascript'></script> <script type="text/javascript"> SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.all();