http://git-wip-us.apache.org/repos/asf/struts-site/blob/124e36c4/content/docs/debugging.html
----------------------------------------------------------------------
diff --git a/content/docs/debugging.html b/content/docs/debugging.html
new file mode 100644
index 0000000..c815cff
--- /dev/null
+++ b/content/docs/debugging.html
@@ -0,0 +1,197 @@
+<!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>Debugging</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="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="debugging.html">Debugging</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">Debugging</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=29096";>
+                <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=29096";>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=29096";>
+                <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=29096";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=29096";>
+                <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=29096";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p>Modern IDEs provide excellent 
support for debugging. In addition, the framework provides support for 
inspecting framework-specific objects at runtime.</p><p>The <a shape="rect" 
href="debugginginterceptor.html">Debugging Interceptor</a> provides three 
debugging modes to provide insight into the data behind the page. The 
<code>xml</code> mode formats relevant framework objects as an XML document. 
The <code>console</code> mode provides a OGNL command line that accepts entry 
of runtime expressions, and the <code>browser</code> mode adds an interactive 
page that display objects from the Value Stack.</p><p>To use the debugging, 
first be sure that <code>struts.devMode</code> is set to <code>true</code> is 
enabled through the <a shape="rect" 
href="strutsproperties.html">struts.properties</a> file or 
<code>struts.xml</code> file, like:</p><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;constant name="struts.devMode" value="true" /&gt;
+</pre>
+</div></div><p>Then, whenever a page needs debugging, add 
<code>?debug=xml</code> or <code>?debug=console</code> or 
<code>?debug=browser</code> to the URL.</p><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;debug&gt;
+  &lt;parameters /&gt; 
+- &lt;context&gt;
+- &lt;struts.actionMapping&gt;
+  &lt;class&gt;class 
org.apache.struts2.dispatcher.mapper.ActionMapping&lt;/class&gt; 
+  &lt;name&gt;showcase&lt;/name&gt; 
+  &lt;namespace&gt;/&lt;/namespace&gt; 
+  &lt;/struts.actionMapping&gt;
+  &lt;attr /&gt; 
+  &lt;__devMode&gt;true&lt;/__devMode&gt; 
+  &lt;report.conversion.errors&gt;false&lt;/report.conversion.errors&gt; 
+  &lt;/context&gt;
+  &lt;request /&gt; 
+  &lt;session /&gt; 
+- &lt;valueStack&gt;
+- &lt;value&gt;
+  &lt;actionErrors /&gt; 
+  &lt;actionMessages /&gt; 
+  &lt;class&gt;class com.opensymphony.xwork2.ActionSupport&lt;/class&gt; 
+  &lt;errorMessages /&gt; 
+  &lt;errors /&gt; 
+  &lt;fieldErrors /&gt; 
+- &lt;locale&gt;
+  &lt;ISO3Country&gt;USA&lt;/ISO3Country&gt; 
+  &lt;ISO3Language&gt;eng&lt;/ISO3Language&gt; 
+  &lt;class&gt;class java.util.Locale&lt;/class&gt; 
+  &lt;country&gt;US&lt;/country&gt; 
+  &lt;displayCountry&gt;United States&lt;/displayCountry&gt; 
+  &lt;displayLanguage&gt;English&lt;/displayLanguage&gt; 
+  &lt;displayName&gt;English (United States)&lt;/displayName&gt; 
+  &lt;displayVariant /&gt; 
+  &lt;language&gt;en&lt;/language&gt; 
+  &lt;variant /&gt; 
+  &lt;/locale&gt;
+  &lt;/value&gt;
+- &lt;value&gt;
+  &lt;class&gt;class com.opensymphony.xwork2.DefaultTextProvider&lt;/class&gt; 
+  &lt;/value&gt;
+  &lt;/valueStack&gt;
+  &lt;/debug&gt;
+</pre>
+</div></div><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>For <code>?debug=xml</code> use 
Internet Explorer or an <a shape="rect" class="external-link" 
href="http://ietab.mozdev.org/"; rel="nofollow">IE tab in 
FireFox</a></p></div></div><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>For <code>?debug=console</code> 
you may need to relax any popup blockers</p></div></div><h2 
id="Debugging-Next:DevelopmentMode">Next: <a shape="rect" 
href="devmode.html">Development Mode</a></h2></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/debugginginterceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/debugginginterceptor.html 
b/content/docs/debugginginterceptor.html
new file mode 100644
index 0000000..fe38816
--- /dev/null
+++ b/content/docs/debugginginterceptor.html
@@ -0,0 +1,175 @@
+<!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>DebuggingInterceptor</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="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="interceptors.html">Interceptors</a>&nbsp;&gt;&nbsp;<a 
href="debugginginterceptor.html">DebuggingInterceptor</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">DebuggingInterceptor</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=29092";>
+                <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=29092";>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=29092";>
+                <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=29092";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=29092";>
+                <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=29092";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p>
+Provides several different debugging screens to provide insight into the
+data behind the page.
+</p>
+
+<p>This interceptor only is activated when devMode is enabled in
+struts.properties. The 'debug' parameter is removed from the parameter list
+before the action is executed. All operations occur before the natural
+Result has a chance to execute.</p>
+
+<h2 id="DebuggingInterceptor-Parameters">Parameters</h2>
+
+<p></p><ul><li> <code>xml</code> - Dumps the parameters, context, session, and 
value
+stack as an XML document.</li><li> <code>console</code> - Shows a popup 'OGNL 
Console' that allows the
+user to test OGNL expressions against the value stack. The XML data from
+the 'xml' mode is inserted at the top of the page.</li><li> 
<code>command</code> - Tests an OGNL expression and returns the
+string result. Only used by the OGNL console.</li><li><code>browser</code> 
Shows field values of an object specified in the 
+<code>object</code> parameter (#context by default). When the 
<code>object</code>
+parameters is set, the '#' character needs to be escaped to '%23'. Like
+debug=browser&amp;object=%23parameters</li></ul>
+
+<h2 id="DebuggingInterceptor-Example">Example</h2>
+
+<p>http://localhost:8080/Welcome.action?debug=xml</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/default-workflow-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/default-workflow-interceptor.html 
b/content/docs/default-workflow-interceptor.html
new file mode 100644
index 0000000..cba3b9e
--- /dev/null
+++ b/content/docs/default-workflow-interceptor.html
@@ -0,0 +1,240 @@
+<!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>Default Workflow Interceptor</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="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="interceptors.html">Interceptors</a>&nbsp;&gt;&nbsp;<a 
href="default-workflow-interceptor.html">Default Workflow Interceptor</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">Default 
Workflow Interceptor</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13995";>
+                <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=13995";>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=13995";>
+                <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=13995";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13995";>
+                <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=13995";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p>
+An interceptor that makes sure there are not validation, conversion or action 
errors before allowing the interceptor chain to continue. 
+If a single FieldError or ActionError (including the ones replicated by the 
Message Store Interceptor in a redirection) is found, the INPUT result will be 
triggered.
+<b>This interceptor does not perform any validation</b>.
+</p>
+
+<p></p><p>
+This interceptor does nothing if the name of the method being invoked is 
specified in the <b>excludeMethods</b>
+parameter. <b>excludeMethods</b> accepts a comma-delimited list of method 
names. For example, requests to
+<b>foo!input.action</b> and <b>foo!back.action</b> will be skipped by this 
interceptor if you set the
+<b>excludeMethods</b> parameter to "input, back".
+</p>
+
+<p></p><p>
+<b>Note:</b> As this method extends off MethodFilterInterceptor, it is capable 
of
+deciding if it is applicable only to selective methods in the action class. 
This is done by adding param tags
+for the interceptor element, naming either a list of excluded method names 
and/or a list of included method
+names, whereby includeMethods overrides excludedMethods. A single * sign is 
interpreted as wildcard matching
+all methods for both parameters.
+See MethodFilterInterceptor for more info.
+</p>
+
+<p></p><p>
+This interceptor also supports the following interfaces which can implemented 
by actions:
+</p>
+
+<p></p><ul><li>ValidationAware - implemented by ActionSupport 
class</li><li>ValidationWorkflowAware - allows changing result name 
programmatically</li><li>ValidationErrorAware - notifies action about errors 
and also allow change result name</li></ul>
+
+<p></p><p>
+You can also use InputConfig annotation to change result name returned when 
validation errors occurred.
+</p>
+
+
+<p><b>In DefaultWorkflowInterceptor</b>
+</p><p>applies only when action implements 
com.opensymphony.xwork2.Validateable</p>
+<ol><li>if the action class have validate{MethodName}(), it will be 
invoked</li><li>else if the action class have validateDo{MethodName}(), it will 
be invoked</li><li>no matter if 1] or 2] is performed, if alwaysInvokeValidate 
property of the interceptor is "true" (which is by default "true"), validate() 
will be invoked.</li></ol>
+
+
+<h2 id="DefaultWorkflowInterceptor-Parameters">Parameters</h2>
+
+<p></p><ul><li>inputResultName - Default to "input". Determine the result name 
to be returned when
+an action / field error is found.</li></ul>
+
+<h2 id="DefaultWorkflowInterceptor-ExtendingtheInterceptor">Extending the 
Interceptor</h2>
+
+
+<p></p><p>There are no known extension points for this interceptor.</p>
+
+
+<h2 id="DefaultWorkflowInterceptor-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;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
+    &lt;interceptor-ref name=&quot;params&quot;/&gt;
+    &lt;interceptor-ref name=&quot;validation&quot;/&gt;
+    &lt;interceptor-ref name=&quot;workflow&quot;/&gt;
+    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
+&lt;/action&gt;
+
+&lt;-- In this case myMethod as well as mySecondMethod of the action class
+       will not pass through the workflow process --&gt;
+&lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
+    &lt;interceptor-ref name=&quot;params&quot;/&gt;
+    &lt;interceptor-ref name=&quot;validation&quot;/&gt;
+    &lt;interceptor-ref name=&quot;workflow&quot;&gt;
+        &lt;param 
name=&quot;excludeMethods&quot;&gt;myMethod,mySecondMethod&lt;/param&gt;
+    &lt;/interceptor-ref name=&quot;workflow&quot;&gt;
+    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
+&lt;/action&gt;
+
+&lt;-- In this case, the result named &quot;error&quot; will be used when
+       an action / field error is found --&gt;
+&lt;-- The Interceptor will only be applied for myWorkflowMethod method of 
action
+       classes, since this is the only included method while any others are 
excluded --&gt;
+&lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
+    &lt;interceptor-ref name=&quot;params&quot;/&gt;
+    &lt;interceptor-ref name=&quot;validation&quot;/&gt;
+    &lt;interceptor-ref name=&quot;workflow&quot;&gt;
+       &lt;param name=&quot;inputResultName&quot;&gt;error&lt;/param&gt;
+        &lt;param name=&quot;excludeMethods&quot;&gt;*&lt;/param&gt;
+        &lt;param 
name=&quot;includeMethods&quot;&gt;myWorkflowMethod&lt;/param&gt;
+    &lt;/interceptor-ref&gt;
+    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
+&lt;/action&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/dependency-injection.html
----------------------------------------------------------------------
diff --git a/content/docs/dependency-injection.html 
b/content/docs/dependency-injection.html
new file mode 100644
index 0000000..731d5b7
--- /dev/null
+++ b/content/docs/dependency-injection.html
@@ -0,0 +1,146 @@
+<!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>Dependency Injection</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="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="dependency-injection.html">Dependency Injection</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">Dependency 
Injection</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13870";>
+                <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=13870";>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=13870";>
+                <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=13870";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13870";>
+                <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=13870";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><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>Dependency injection removes the 
responsibility for object creation and object linking from the objects 
themselves to a factory.  The factory is often provided by an Inversion of 
Control (IoC) container.  For an overview of Inversion of Control containers 
and the Dependency Injection pattern, please see <a shape="rect" 
class="external-link" 
href="http://www.martinfowler.com/articles/injection.html"; 
rel="nofollow">Martin Fowler's article</a>.</p></div></div>
+
+<p>Internally, the framework uses its own dependency injection container that 
is very similar to Google Guice.  Both were originally developed by <a 
shape="rect" class="external-link" href="http://blog.crazybob.org/"; 
rel="nofollow">Bob Lee</a>.  Plugins are available to integrate applications 
with other IoC containers (e.g. <a shape="rect" class="unresolved" 
href="#">Spring Plugin</a>, <a shape="rect" class="unresolved" href="#">Plexus 
Plugin</a>).  An application can even use a local copy of Google Guice for 
dependency injection needs. </p>
+
+<p><img class="emoticon emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> Actions can still be 
instantiated via Spring configuration by way of the <a shape="rect" 
class="unresolved" href="#">Spring Plugin</a>, but Spring is entirely 
optional.</p>
+
+<p><img class="emoticon emoticon-warning" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png";
 data-emoticon-name="warning" alt="(warning)"> The WebWork/XWork IoC container 
utilized by WebWork 2.1 is not supported by Struts 2.</p>
+
+<h2 id="DependencyInjection-Next:">Next: <a shape="rect" 
href="profiling.html">Profiling</a></h2></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/describing-a-bean-in-velocity.html
----------------------------------------------------------------------
diff --git a/content/docs/describing-a-bean-in-velocity.html 
b/content/docs/describing-a-bean-in-velocity.html
new file mode 100644
index 0000000..83a16c8
--- /dev/null
+++ b/content/docs/describing-a-bean-in-velocity.html
@@ -0,0 +1,171 @@
+<!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>Describing a bean in velocity</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="describing-a-bean-in-velocity.html">Describing a bean in velocity</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">Describing a 
bean in velocity</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14173";>
+                <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=14173";>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=14173";>
+                <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=14173";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14173";>
+                <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=14173";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p>The follow snippet might be useful 
during debugging to list the properties inside an<br clear="none"> arbitary 
bean. Or for handing to a UI developer that use unaware of the getters/setters 
inside an object.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">## prints out the property names for a bean
+#macro (describeBean $name) 
+#set($bu = $struts.bean("com.opensymphony.util.BeanUtils"))
+       #foreach($propName in $bu.getPropertyNames($name))
+               &lt;li&gt;$propName&lt;/li&gt;
+       #end
+#end
+</pre>
+</div></div><p>i.e. assuming $obj is a PersonObject that has 
properties(firstName, lastName, and zip).</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">#describeBean($obj)</pre>
+</div></div><p>would print</p><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;li&gt;firstName&lt;/li&gt;
+&lt;li&gt;lastName&lt;/li&gt;
+&lt;li&gt;zip&lt;/li&gt;
+</pre>
+</div></div><p>One might also expand upon this to build a dynamic interface 
with via reflection. e.g.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">$struts.evalute("$obj.${propName}")
+</pre>
+</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/developing-a-portlet-using-eclipse.html
----------------------------------------------------------------------
diff --git a/content/docs/developing-a-portlet-using-eclipse.html 
b/content/docs/developing-a-portlet-using-eclipse.html
new file mode 100644
index 0000000..78694e2
--- /dev/null
+++ b/content/docs/developing-a-portlet-using-eclipse.html
@@ -0,0 +1,242 @@
+<!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>Developing a Portlet using Eclipse</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="tutorials.html">Tutorials</a>&nbsp;&gt;&nbsp;<a 
href="developing-a-portlet-using-eclipse.html">Developing a Portlet using 
Eclipse</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">Developing a 
Portlet using Eclipse</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=62489";>
+                <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=62489";>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=62489";>
+                <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=62489";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=62489";>
+                <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=62489";>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>The Portlet support is 
experimental. Feedback is appreciated!</p></div></div>
+
+<h1 id="DevelopingaPortletusingEclipse-Index">Index</h1>
+
+<ol><li><a shape="rect" 
href="developing-a-portlet-using-eclipse.html">Introduction</a></li><li><a 
shape="rect" href="developing-a-portlet-using-eclipse.html">Installing 
Eclipse</a></li><li><a shape="rect" 
href="developing-a-portlet-using-eclipse.html">Installing Maven 
2</a></li><li><a shape="rect" 
href="developing-a-portlet-using-eclipse.html">Installing Tomcat</a></li><li><a 
shape="rect" href="developing-a-portlet-using-eclipse.html">Creating the 
project</a></li><li><a shape="rect" 
href="developing-a-portlet-using-eclipse.html">Eclipse project 
generation</a></li><li><a shape="rect" 
href="developing-a-portlet-using-eclipse.html">Deploy as a servlet</a></li></ol>
+
+
+<h1 id="DevelopingaPortletusingEclipse-Step-by-StepTutorial">Step-by-Step 
Tutorial</h1>
+
+
+<h2 id="DevelopingaPortletusingEclipse-Introductionintro">Introduction <span 
class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-intro"></span></h2>
+
+<p>This tutorial focuses on how to create an Eclipse development environment 
to create and debug portlets.  It does not cover portal deployment (which is 
different for each portal) and cheats a bit by using the 
struts2-archetype-portlet Maven 2 archetype.  We can get away with not talking 
about portlet development, because Struts 2 portlet support allows a 
carefully-written portlet to be ran as a regular servlet application, 
drastically simplifying our development setup.  Of course, to fully test your 
portlet, you will need to deploy the war into a portal server, but by running 
it in pure Tomcat, we can get 90% of the way there. Therefore, this tutorial 
requires Eclipse, Maven 2, and Tomcat to be installed.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-InstallingEclipseinstall_eclipse">Installing 
Eclipse <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-install_eclipse"></span></h2>
+
+<p>In the tutorial, we will be using Eclipse 3.3 which can be downloaded from 
<a shape="rect" class="external-link" href="http://www.eclipse.org"; 
rel="nofollow">http://www.eclipse.org</a>.  I recommend the JEE package, which 
contains the popular (and required for this tutorial) Web Tools Project.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-InstallingMaven2install_maven">Installing 
Maven 2 <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-install_maven"></span></h2>
+
+<p>Apache Maven 2 can be found at <a shape="rect" class="external-link" 
href="http://maven.apache.org";>http://maven.apache.org</a>.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-InstallingTomcatinstall_tomcat">Installing 
Tomcat <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-install_tomcat"></span></h2>
+
+<p>Apache Tomcat can be found at <a shape="rect" class="external-link" 
href="http://tomcat.apache.org";>http://tomcat.apache.org</a>.  To install, 
simply unzip the distribution to a known location on your hard drive.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-Creatingtheprojectcreate_project">Creating 
the project <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-create_project"></span></h2>
+
+<p>To start, we will use the Struts 2 portlet Maven archetype, 
struts2-archetype-portlet, which will create a new portlet project will all the 
necessary files for a simple "hello world"-style portlet.  Open a terminal and 
type:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<pre>mvn archetype:create -DgroupId=com.mycompany.myportlet \
+                     -DartifactId=myportlet \
+                     -DarchetypeGroupId=org.apache.struts \
+                     -DarchetypeArtifactId=struts2-archetype-portlet \
+                     -DarchetypeVersion=2.0.9-SNAPSHOT \
+                     
-DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository
+</pre>
+</div></div>
+
+<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>Aternatively, you can use <a shape="rect" class="external-link" 
href="http://code.google.com/p/archy/"; rel="nofollow">Archy</a>, a tool that 
provides an interactive command-line front-end to Maven 
Archetypes.</p></div></div>
+<p>This will result in the following layout:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<pre>./src/main/java/com/mycompany/myportlet/view/IndexAction.java
+./src/main/java/com/mycompany/myportlet/edit/IndexAction.java
+./src/main/webapp/WEB-INF/web.xml
+./src/main/webapp/WEB-INF/view/index.jsp
+./src/main/webapp/WEB-INF/portlet.xml
+./src/main/webapp/WEB-INF/edit/index-success.jsp
+./src/main/webapp/WEB-INF/edit/index-input.jsp
+./src/main/webapp/WEB-INF/help/index.jsp
+./src/main/webapp/index.jsp
+./src/main/resources/struts.xml
+./pom.xml
+</pre>
+</div></div>
+
+<p>As you can see, this portlet comes with a simple "hello world" view, but 
also default edit and help screens.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-Eclipseprojectgenerationeclipse_generation">Eclipse
 project generation <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-eclipse_generation"></span></h2>
+
+<p>A nice benefit of the Maven 2 build that new project comes equipped with is 
Maven 2 has a plugin that will generate all our Eclipse configuration.  Move 
into the 'myportlet' directory and type:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<pre>mvn -Dwtpversion=1.0 -DdownloadSources=true eclipse:eclipse
+</pre>
+</div></div>
+
+<div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">First Eclipse and Maven project?</p><span class="aui-icon 
aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
+<p>If this is your first time using Eclipse and Maven, Eclipse needs to know 
the path to the local maven repository. Therefore the classpath variable 
M2_REPO has to be set. Execute the following command:</p>
+<div class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<pre>mvn -Declipse.workspace=&lt;path-to-eclipse-workspace&gt; 
eclipse:add-maven-repo 
+</pre>
+</div></div>
+<p>You can also define a new classpath variable inside eclipse: From the menu 
bar, select Window &gt; Preferences. Select the Java &gt; Build Path &gt; 
Classpath Variables page.</p></div></div>
+
+<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>For more information on the Maven Eclipse plugin, see its <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/plugins/maven-eclipse-plugin/overview.html";>homepage</a></p></div></div>
+
+<p>Now, your generated 'myportlet' Eclipse module is ready to be imported into 
your workspace.  In Eclipse, go to "File -&gt; Import... -&gt; General -&gt; 
Existing Projects into Workspace", select the your 'myportlet' directory, and 
follow the prompts.</p>
+
+<h2 
id="DevelopingaPortletusingEclipse-Deployingyourportletasaservletdeploy_servlet">Deploying
 your portlet as a servlet <span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-deploy_servlet"></span></h2>
+
+<p>Since the Eclipse project was generated with the 'wtpversion' flag, it will 
be immediately recognized as a web application by Eclipse.  If this is your 
first time deploying web applications in Eclipse, you will need set up your 
Tomcat server.  To do this in Eclipse:</p>
+
+<ol><li>Navigate to "Window -&gt; Show View -&gt; Other..."</li><li>Open 
"Server" and select "Servers".  This will open a "Servers" tab, probably in 
your bottom tab panel.</li><li>Right-click in the new "Servers" tab and select 
"New -&gt; Server"</li><li>Select the version of Tomcat you installed and click 
"Next"</li><li>Click "Browse" and locate your Tomcat installation, and click 
"Next"</li><li>If "myportlet" isn't already in the "Configured projects" 
column, move it over and click "Finished"</li></ol>
+
+
+<p>Before we can run our portlet in Eclipse, I've found that you need to add 
the portlet jar to Tomcat.  To do this:</p>
+
+<ol><li>Right-click on the 'myportlet' project in the "Project Explorer" and 
select "Properties"</li><li>Click on "J2EE Module Dependencies</li><li>Click on 
the checkbox next to 
"M2_REPO/portlet-api/portlet-api/1.0/portlet-api-1.0.jar"</li><li>Click 
"OK"</li></ol>
+
+
+<p>Now, you should be able to run and debug your project in Tomcat.  The way I 
prefer to do this is to:</p>
+
+<ol><li>Right-click on the 'myportlet' project in the "Package Explorer" and 
select "Run As -&gt; Run on Server"</li><li>Select the Tomcat server you set up 
and click "Finish"</li></ol>
+
+
+<p>Eclipse will now run your portlet application as if it was a servlet.</p>
+
+<h2 id="DevelopingaPortletusingEclipse-AdditionalTipstips">Additional Tips 
<span class="confluence-anchor-link" 
id="DevelopingaPortletusingEclipse-tips"></span></h2>
+
+<ul><li>"View", "Edit", "Help" mode actions are mapped to the "/view", 
"/edit", "/help" namespaces respectively</li><li>The default action in each 
namespace is titled the "index" action</li><li>To add actions, just add the 
Action class and jsp following the shown conventions.  No 
<code>struts.xml</code> modification needed.</li><li>Use the Eclipse option 
"Debug As..." instead of "Run As..." to enable step through 
debugging</li></ul></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/devmode.html
----------------------------------------------------------------------
diff --git a/content/docs/devmode.html b/content/docs/devmode.html
new file mode 100644
index 0000000..9d52f6f
--- /dev/null
+++ b/content/docs/devmode.html
@@ -0,0 +1,160 @@
+<!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>devMode</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="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a 
href="devmode.html">devMode</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">devMode</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=48688";>
+                <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=48688";>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=48688";>
+                <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=48688";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=48688";>
+                <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=48688";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><h2 
id="devMode-DevelopmentMode(aka&quot;devMode&quot;)">Development Mode (aka 
"devMode")</h2><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Please turn this option off before 
deploying application to a production environment - it can expose sensitive 
data of your application!</p></div></div><p>Struts 2 has a setting (which can 
be set to <code style="line-height: 1.4285715;">true</code> or <code 
style="line-height: 1.4285715;">false</code> in <a shape="rect" 
href="strutsproperties.html">struts.properties</a>) called devMode (= 
development mode). When this setting is enabled, Struts 2 will provide 
additional logging and debug information, which can significantly speed up 
development.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span c
 lass="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can also set this constant in 
your struts.xml file: <code>&lt;constant name="struts.devMode" value="true" 
/&gt;</code>.</p><p>This is the preferred method. See <a shape="rect" 
href="constant-configuration.html">Constant Configuration</a> for more 
information.</p></div></div><h2 id="devMode-Whatdoesitdo?">What does it 
do?</h2><ul class="alternate"><li>When enabled, Struts 2 will reload your 
<strong>resource bundles on every request</strong> (meaning you can change your 
.properties files, save them, and see the changes reflected on the next 
request).<br clear="none"> Note: this option can also be set standalone via 
<code>struts.i18n.reload = true</code></li></ul><ul class="alternate"><li>It 
will also <strong>reload your xml configuration files</strong> (<a shape="rect" 
href="strutsxml.html">struts.xml</a>), your <strong>validation files</st
 rong>, and so on, on every request. This is useful for testing or fine-tuning 
your configuration without having to redeploy your application every time.<br 
clear="none"> Note: this option can also be set standalone via 
<code>struts.configuration.xml.reload = true</code></li></ul><ul 
class="alternate"><li>And thirdly, perhaps the setting which is less widely 
known, and therefore a source of much confusion: it will <strong>raise the 
level of debug or normally ignorable problems to errors</strong>. For example: 
when you <strong>submit a field which cannot be set on an action</strong> 
'someUnknownField', it will normally be ignored. However, when you're in 
development mode, <strong>an exception will be thrown</strong>, telling you an 
invalid field was submitted. This is very useful for debugging or testing large 
forms, but can also be confusing if you're relying on parameters in your 
request that are not set on the action, but which you are using directly in 
your view layer (<strong>war
 ning</strong>: bad practice, you should always validate input from the 
web).</li></ul><h2 id="devMode-Don'tforget...">Don't forget...</h2><p>By 
default, the development mode is disabled, because it has a significant impact 
on <a shape="rect" href="performance-tuning.html">performance</a>, since the 
entire configuration will be reloaded on every request.</p><h2 
id="devMode-Pagerenderingisslow">Page rendering is slow</h2><p>If you 
experience slow page rendering when <code>devMode</code> is on it's mostly 
because Freemarker cache is disabled during <code>devMode</code>. You can 
explicit enable cache and any other options disabled by <code>devMode</code>, 
see example below:</p><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;constant name="struts.devMode" value="true" /&gt;
+&lt;constant name="struts.i18n.reload" value="false"/&gt;
+&lt;constant name="struts.configuration.xml.reload" value="false"/&gt;
+&lt;constant name="struts.freemarker.templatesCache" value="true"/&gt;
+&lt;constant name="struts.freemarker.templatesCache.updateDelay" 
value="120"/&gt;
+&lt;constant name="struts.freemarker.mru.max.strong.size" value="120"/&gt;
+</pre>
+</div></div><p>As you can see, you can switch <code>devMode</code> on and 
still have production options on as well.</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>Please remember to use production 
optimized options which can be different than these used during development 
(especially cache related)!</p></div></div><h2 id="devMode-Next:">Next: <a 
shape="rect" href="zero-configuration.html">Zero Configuration</a></h2></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>

Reply via email to