http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/guides.html
----------------------------------------------------------------------
diff --git a/content/docs/guides.html b/content/docs/guides.html
new file mode 100644
index 0000000..26c5072
--- /dev/null
+++ b/content/docs/guides.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" 
href="https://struts.apache.org/css/default.css";>
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>Guides</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a 
href="guides.html">Guides</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search"; 
method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the 
logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; 
margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 
2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Guides</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14237";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Edit Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14237";>Edit
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Browse Space"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14237";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14237";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14237";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add News"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14237";>Add
 News</a>
+        </div>
+    </div>
+
+    <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>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">Actions</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.h
 tml">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/5997/6f42626d00e36f53fe51440403446ca61552e2a2.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-spring-junit/";
 rel="nofollow">(arsenalist)</a></li><li><a shape="rect" class="exte
 rnal-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="re
 ct" 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-Struts2MavenArchetypeshttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=108820";><a
 shape="rect" href="struts-2-mav
 en-archetypes.html">Struts 2 Maven Archetypes</a></h2><p></p><div 
class="panel" style="border-width: 1px;"><div class="panelHeader" 
style="border-bottom-width: 1px;"><b>Struts 2 Maven 
Archetypes</b></div></div><h2 
id="Guides-TagDevelopersGuidehttps://cwiki.apache.org/confluence/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 shape="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 Deve
 lopers 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 with 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> (&lt; 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>&lt; 
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>Deprecated: <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>&lt; 
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> (&lt; 2.5)</li></ul>
 </td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and 
third-party 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 &amp; ActionProxy 
Factory</a></li><li><a shape="rect" 
href="configuration-provider-configuration.html">Configuration Provider &amp; 
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-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>
+
+<ul><li><a shape="rect" 
href="building-the-framework-from-source.html">Building the Framework from 
Source</a>
+       <ul><li><a shape="rect" href="building-with-maven.html">Building with 
Maven</a></li></ul>
+       </li><li><a shape="rect" 
href="creating-and-signing-a-distribution.html">Creating and Signing a 
Distribution</a></li><li><a shape="rect" 
href="requirements.html">Requirements</a> and <a shape="rect" 
href="use-cases.html">Use Cases</a> - <img class="emoticon emoticon-warning" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/warning.png";
 data-emoticon-name="warning" alt="(warning)"> <em>under 
construction</em></li><li><a shape="rect" 
href="precise-error-reporting.html">Precise Error Reporting</a></li><li><a 
shape="rect" href="obtaining-an-idea-license.html">Obtaining an IDEA 
license</a></li><li><a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/javadoc/writingdoccomments/"; rel="nofollow">How 
to Write Doc Comments for the Javadoc Tool</a> (Sun)</li></ul>
+
+
+<h3 id="Guides-Documentation">Documentation</h3>
+
+<ul><li><a shape="rect" href="editing-the-documentation.html">Editing the 
Documentation</a></li><li><a shape="rect" href="colophon.html">Documentation 
Colophon</a></li><li><a shape="rect" 
href="documentation-style-guide.html">Documentation Style Guide</a></li></ul>
+
+
+<h4 id="Guides-CoreGuideTODOs">Core Guide TODOs</h4>
+
+<ul><li>Creating Resources</li><li>Writing Validators</li><li>Writing Type 
Converters</li><li>Actions</li><li>Writing Actions</li><li>Writing 
Results</li></ul>
+
+
+<h3 id="Guides-LicensingandCopyright">Licensing and Copyright</h3>
+
+<ul><li><a shape="rect" class="external-link" 
href="http://people.apache.org/~cliffs/3party.html";>Third Party Licensing 
Policy RFC</a></li><li><a shape="rect" class="external-link" 
href="http://www.apache.org/legal/src-headers.html";>ASF Source Header and 
Copyright Notice Policy</a></li><li><a shape="rect" class="external-link" 
href="http://tinyurl.com/mw7t6"; rel="nofollow">Author Tags</a></li></ul><h2 
id="Guides-Errata?">Errata?</h2><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>To suggest a change or a 
correction to any part of the documentation, log in and leave a comment on the 
appropriate page. We are always looking for <a shape="rect" 
class="external-link" 
href="http://struts.apache.org/2.x/docs/contributors-guide.html";>help with the 
documentation!</a></p></div></div><h2 id="Guides-Next:">Next: <a shape
 ="rect" href="faqs.html">FAQs</a></h2><p>&#160;</p></div>
+        </div>
+
+                    <div class="tabletitle">
+                Children
+            <span class="smalltext" id="show" style="display: inline;">
+              <a href="javascript:showChildren()">Show Children</a></span>
+            <span class="smalltext" id="hide" style="display: none;">
+              <a href="javascript:hideChildren()">Hide Children</a></span>
+            </div>
+            <div class="greybox" id="children" style="display: none;">
+                                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                            </div>
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/handling-file-uploads.html
----------------------------------------------------------------------
diff --git a/content/docs/handling-file-uploads.html 
b/content/docs/handling-file-uploads.html
new file mode 100644
index 0000000..b372155
--- /dev/null
+++ b/content/docs/handling-file-uploads.html
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" 
href="https://struts.apache.org/css/default.css";>
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
+    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
+    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
+    <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();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>Handling File Uploads</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a 
href="faqs.html">FAQs</a>&nbsp;&gt;&nbsp;<a 
href="cookbook.html">Cookbook</a>&nbsp;&gt;&nbsp;<a 
href="handling-file-uploads.html">Handling File Uploads</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search"; 
method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the 
logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; 
margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 
2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Handling 
File Uploads</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13885";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Edit Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13885";>Edit
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Browse Space"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13885";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13885";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13885";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add News"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13885";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p>The framework comes with built in 
file upload support. Uploading a file is simple. When FilterDispatcher receives 
a request, it checks to see if the request contains multipart content. If it 
does the dispatcher creates a MultipartWrapperRequest. This wrapper handles 
receiving the file and saving to disk. It is important for the Action 
programmer to check to see if any errors occured during processing. Three 
properties can be set that effect file uploading.</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Ensure you have the necessary file 
upload libraries in your application. If using the default file upload parser, 
Commons Fileupload and its dependencies should be in your application's 
classpath.</p></div></div><h2 id="HandlingFileUploads-Properties">Properties</
 h2><p>Properties can be set by putting a <code>struts.properties</code> file 
in <code>WEB-INF/classes</code>. Any property found in the properties file will 
override the default value.</p><ol><li><code>struts.multipart.parser</code> - 
This property should be set to a class that extends MultiPartRequest. 
Currently, the framework ships with the Jakarta FileUpload 
implementation.</li><li><code>struts.multipart.saveDir</code> - The directory 
where the uploaded files will be placed. If this property is not set it 
defaults to 
<code>javax.servlet.context.tempdir</code>.</li><li><code>struts.multipart.maxSize</code>
 - The maximum file size in bytes to allow for upload. This helps prevent 
system abuse by someone uploading lots of large files. The default value is 2 
Megabytes and can be set as high as 2 Gigabytes (higher if you want to edit the 
Pell multipart source but you really need to rethink things if you need to 
upload files larger then 2 Gigabytes!) If you are uploading more than one f
 ile on a form the maxSize applies to the combined total, not the individual 
file sizes.</li></ol><p>If you're happy with the defaults, there is no need to 
put any of the properties in <code>struts.properties</code>.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 
1px;"><b>struts.properties</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;"># put the uploaded files in /tmp. My application will 
move them to their
+# final destination
+struts.multipart.saveDir=/tmp
+</pre>
+</div></div><p>Note, while you can set these properties to new values at 
runtime the MultiPartRequestWrapper is created and the file handled before your 
Action code is called. So if you want to change values you must do so before 
this Action.</p><h2 id="HandlingFileUploads-SampleForm">Sample Form</h2><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;%@ taglib uri="action2" prefix="s" %&gt;
+
+&lt;html&gt;
+  &lt;head&gt;
+   &lt;title&gt;File Upload Test&lt;/title&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;h1&gt;File Upload&lt;/h1&gt;
+
+    &lt;form action="FileUpload.action" method="POST" 
enctype="multipart/form-data"&gt;
+
+    &lt;center&gt;
+      &lt;table width="350" border="0" cellpadding="3" cellspacing="0"&gt;
+      &lt;tr&gt;
+        &lt;td colspan="2"&gt;&lt;input type="file" name="FileName" 
value="Browse..." size="50"/&gt;&lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;tr&gt;
+        &lt;td colspan="2" align="center"&gt;
+          &lt;input type="submit" value="Submit"&gt;
+        &lt;/td&gt;
+      &lt;/tr&gt;
+      &lt;/table&gt;
+    &lt;/center&gt;
+  &lt;/form&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</pre>
+</div></div><p>That's all you have to do to upload a file. No coding required, 
the file will be placed in the default directory. However, that leaves us with 
no error checking among other things. So let's add some code to the 
Action.</p><h2 id="HandlingFileUploads-FileUploadAction">File Upload 
Action</h2><p>Before the Action method is called the dispatcher will upload the 
file. Then we can get access to information about the file from 
MultiPartRequestWrapper.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>FileUploadAction.java</b></div><div class="codeContent panelContent 
pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">MultiPartRequestWrapper multiWrapper =
+               (MultiPartRequestWrapper) ServletActionContext.getRequest();
+</pre>
+</div></div><p>The first thing you should always do is check for errors. If 
there were any, there's no point in continuing, most methods will return null. 
Unfortunately, currently there is no easy way to distinguish what error occured 
making it more difficult to route to different error pages.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">if (multiWrapper.hasErrors()) {
+  Collection errors = multiWrapper.getErrors();
+  Iterator i = errors.iterator();
+  while (i.hasNext()) {
+    addActionError((String) i.next());
+  }
+  return ERROR;
+}
+</pre>
+</div></div><p>Now get the input tag name for the uploaded file and use that 
to get information on the transfer. Since you can upload multiple files (just 
add multiple input tags) at a time <code>getFileNames</code> returns an 
Enumeration of the names.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">Enumeration e = multiWrapper.getFileNames();
+
+while (e.hasMoreElements()) {
+   // get the value of this input tag
+   String inputValue = (String) e.nextElement();
+
+   // get the content type
+   String contentType = multiWrapper.getContentType(inputValue);
+
+   // get the name of the file from the input tag
+   String fileName = multiWrapper.getFilesystemName(inputValue);
+
+   // Get a File object for the uploaded File
+   File file = multiWrapper.getFile(inputValue);
+
+   // If it's null the upload failed
+   if (file == null) {
+      addActionError("Error uploading: " + 
multiWrapper.getFilesystemName(inputValue));
+   }
+
+   // Do additional processing/logging...
+}
+</pre>
+</div></div><h2 id="HandlingFileUploads-FurtherImprovements">Further 
Improvements</h2><p>Code above may be packed into one nice reusable component 
(Interceptor) that handles 90% of all typical file upload tasks. And Action 
does not know anything about web-app and just gets its files. Neat.</p><p><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)"> For more, see the <a 
shape="rect" href="file-upload-interceptor.html">File Upload 
Interceptor</a></p></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/head.html
----------------------------------------------------------------------
diff --git a/content/docs/head.html b/content/docs/head.html
new file mode 100644
index 0000000..fbd8ee4
--- /dev/null
+++ b/content/docs/head.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" 
href="https://struts.apache.org/css/default.css";>
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
+    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
+    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
+    <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();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>head</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a 
href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a 
href="tag-developers-guide.html">Tag Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="struts-tags.html">Struts Tags</a>&nbsp;&gt;&nbsp;<a 
href="tag-reference.html">Tag Reference</a>&nbsp;&gt;&nbsp;<a 
href="ui-tag-reference.html">UI Tag Reference</a>&nbsp;&gt;&nbsp;<a 
href="head.html">head</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search"; 
method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the 
logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; 
margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 
2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">head</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13997";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Edit Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13997";>Edit
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Browse Space"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13997";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13997";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13997";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add News"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13997";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Please make sure you have read the 
<a shape="rect" href="tag-syntax.html">Tag Syntax</a> document and understand 
how tag attribute syntax works.</p></div></div>
+
+<h2 id="head-Description">Description</h2>
+
+
+<p>Renders parts of the HEAD section for an HTML file. Encoding can be set 
using this tag.</p>
+
+<h2 id="head-Parameters">Parameters</h2>
+
+<p><table width="100%"><tr><td colspan="6" rowspan="1"><h4>Dynamic Attributes 
Allowed:</h4> true</td></tr><tr><td colspan="6" 
rowspan="1">&#160;</td></tr><tr><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Name</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Required</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Default</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Evaluated</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Type</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Description</h4></th></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">accesskey</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set t
 he html accesskey attribute on rendered html element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">class</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css class to use for element - it's an alias of cssClass 
attribute.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">cssClass</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css class to use for element</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">css
 ErrorClass</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css error class to use for element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">cssErrorStyle</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css error style definitions for element to 
use</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">cssStyle</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="to
 p"></td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td 
align="left" colspan="1" rowspan="1" valign="top">String</td><td align="left" 
colspan="1" rowspan="1" valign="top">The css style definitions for element to 
use</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">disabled</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html disabled attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">errorPosition</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" valig
 n="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Define error position of form element 
(top|bottom)</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">id</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">HTML id attribute</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">javascriptTooltip</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Use JavaScript to generate tooltips</td></tr><tr><td align="left" 
colspan=
 "1" rowspan="1" valign="top">key</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the key (name, value, label) for this particular 
component</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">label</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Label expression used for rendering an element specific 
label</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">labelSeparator</td><td align="left" colspan="1" rowspan="1" 
valign="top">false<
 /td><td align="left" colspan="1" rowspan="1" valign="top">:</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">String that will be appended to the 
label</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">labelposition</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Define label position of form element (top/left)</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">name</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td a
 lign="left" colspan="1" rowspan="1" valign="top">String</td><td align="left" 
colspan="1" rowspan="1" valign="top">The name to set for 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onblur</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" valign="top"> 
Set the html onblur attribute on rendered html element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">onchange</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onchange attribu
 te on rendered html element</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">onclick</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onclick attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">ondblclick</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html ondblclick attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onfocus</td><t
 d align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onfocus attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeydown</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onkeydown attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeypress</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" valig
 n="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onkeypress attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeyup</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onkeyup attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmousedown</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" ro
 wspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmousedown attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmousemove</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmousemove attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmouseout</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html
  onmouseout attribute on rendered html element</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">onmouseover</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmouseover attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmouseup</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmouseup attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" va
 lign="top">onselect</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onselect attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">requiredLabel</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">If set to true, the rendered element will indicate that input is 
required</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">requiredPosition</td><td align="left" colspan="1" rowspan="1" 
valign="to
 p">false</td><td align="left" colspan="1" rowspan="1" valign="top"></td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">Define required position of required form element 
(left|right)</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">style</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css style definitions for element to use - it's an alias of 
cssStyle attribute.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tabindex</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align
 ="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">Set the html tabindex attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">template</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The template (other than default) to use for rendering the 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">templateDir</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" va
 lign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The template directory.</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">theme</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The theme (other than default) to use for rendering the 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">title</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html title attribute on rendered html element</td></tr><tr>
 <td align="left" colspan="1" rowspan="1" valign="top">tooltip</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the tooltip of this particular component</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">tooltipConfig</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Deprecated. Use individual tooltip configuration attributes 
instead.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tooltipCssClass</td><td align="left" colspan="1" rows
 pan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">StrutsTTClassic</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">CSS class applied to JavaScrip tooltips</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">tooltipDelay</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">Classic</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Delay in milliseconds, before showing JavaScript tooltips 
</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tooltipIconPath</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td
  align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">Icon path used for image that will have the 
tooltip</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">value</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Preset the value of input element.</td></tr></table></p>
+
+<h2 id="head-Examples">Examples</h2>
+
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+&lt;head&gt;
+  &lt;title&gt;My page&lt;/title&gt;
+  &lt;s:head/&gt;
+&lt;/head&gt;
+]]></script>
+</div></div></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/hello-world-using-struts-2.data/Hello.png
----------------------------------------------------------------------
diff --git a/content/docs/hello-world-using-struts-2.data/Hello.png 
b/content/docs/hello-world-using-struts-2.data/Hello.png
new file mode 100644
index 0000000..d36de44
Binary files /dev/null and 
b/content/docs/hello-world-using-struts-2.data/Hello.png differ

http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/hello-world-using-struts-2.data/Struts2HelloWorld.png
----------------------------------------------------------------------
diff --git a/content/docs/hello-world-using-struts-2.data/Struts2HelloWorld.png 
b/content/docs/hello-world-using-struts-2.data/Struts2HelloWorld.png
new file mode 100644
index 0000000..5388697
Binary files /dev/null and 
b/content/docs/hello-world-using-struts-2.data/Struts2HelloWorld.png differ

Reply via email to