You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/10/01 08:43:56 UTC

svn commit: r880619 [2/2] - in /websites/production/struts/content/development/2.x/docs: ./ form-validation-using-xml.data/

Modified: websites/production/struts/content/development/2.x/docs/security-bulletins.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/security-bulletins.html (original)
+++ websites/production/struts/content/development/2.x/docs/security-bulletins.html Tue Oct  1 06:43:55 2013
@@ -126,7 +126,7 @@ under the License. 
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The following security bulletins are available:</p>
-<ul><li><a shape="rect" href="s2-001.html" title="S2-001">S2-001</a> &#8212; <span class="smalltext">Remote code exploit on form validation error</span></li><li><a shape="rect" href="s2-002.html" title="S2-002">S2-002</a> &#8212; <span class="smalltext">Cross site scripting (XSS) vulnerability on &lt;s:url&gt; and &lt;s:a&gt; tags</span></li><li><a shape="rect" href="s2-003.html" title="S2-003">S2-003</a> &#8212; <span class="smalltext">XWork ParameterInterceptors bypass allows OGNL statement execution</span></li><li><a shape="rect" href="s2-004.html" title="S2-004">S2-004</a> &#8212; <span class="smalltext">Directory traversal vulnerability while serving static content</span></li><li><a shape="rect" href="s2-005.html" title="S2-005">S2-005</a> &#8212; <span class="smalltext">XWork ParameterInterceptors bypass allows remote command execution</span></li><li><a shape="rect" href="s2-006.html" title="S2-006">S2-006</a> &#8212; <span class="smalltext">Multiple Cross-Site Scripting (XSS)
  in XWork generated error pages</span></li><li><a shape="rect" href="s2-007.html" title="S2-007">S2-007</a> &#8212; <span class="smalltext">User input is evaluated as an OGNL expression when there's a conversion error</span></li><li><a shape="rect" href="s2-008.html" title="S2-008">S2-008</a> &#8212; <span class="smalltext">Multiple critical vulnerabilities in Struts2</span></li><li><a shape="rect" href="s2-009.html" title="S2-009">S2-009</a> &#8212; <span class="smalltext">ParameterInterceptor vulnerability allows remote command execution</span></li><li><a shape="rect" href="s2-010.html" title="S2-010">S2-010</a> &#8212; <span class="smalltext">When using Struts 2 token mechanism for CSRF protection, token check may be bypassed by misusing known session attributes</span></li><li><a shape="rect" href="s2-011.html" title="S2-011">S2-011</a> &#8212; <span class="smalltext">Long request parameter names might significantly promote the effectiveness of DOS attacks</span></li><li><a shape
 ="rect" href="s2-012.html" title="S2-012">S2-012</a> &#8212; <span class="smalltext">Showcase app vulnerability allows remote command execution</span></li><li><a shape="rect" href="s2-013.html" title="S2-013">S2-013</a> &#8212; <span class="smalltext">A vulnerability, present in the <em>includeParams</em> attribute of the <em>URL</em> and <em>Anchor</em> Tag, allows remote command execution</span></li><li><a shape="rect" href="s2-014.html" title="S2-014">S2-014</a> &#8212; <span class="smalltext">A vulnerability introduced by forcing parameter inclusion in the <em>URL</em> and <em>Anchor</em> Tag allows remote command execution, session access and manipulation and XSS attacks</span></li><li><a shape="rect" href="s2-015.html" title="S2-015">S2-015</a> &#8212; <span class="smalltext">A vulnerability introduced by wildcard matching mechanism or double evaluation of OGNL Expression allows remote command execution.</span></li><li><a shape="rect" href="s2-016.html" title="S2-016">S2-016</
 a> &#8212; <span class="smalltext">A vulnerability introduced by manipulating parameters prefixed with "action:"/"redirect:"/"redirectAction:" allows remote command execution</span></li><li><a shape="rect" href="s2-017.html" title="S2-017">S2-017</a> &#8212; <span class="smalltext">A vulnerability introduced by manipulating parameters prefixed with "redirect:"/"redirectAction:" allows for open redirects</span></li></ul></div>
+<ul><li><a shape="rect" href="s2-001.html" title="S2-001">S2-001</a> &#8212; <span class="smalltext">Remote code exploit on form validation error</span></li><li><a shape="rect" href="s2-002.html" title="S2-002">S2-002</a> &#8212; <span class="smalltext">Cross site scripting (XSS) vulnerability on &lt;s:url&gt; and &lt;s:a&gt; tags</span></li><li><a shape="rect" href="s2-003.html" title="S2-003">S2-003</a> &#8212; <span class="smalltext">XWork ParameterInterceptors bypass allows OGNL statement execution</span></li><li><a shape="rect" href="s2-004.html" title="S2-004">S2-004</a> &#8212; <span class="smalltext">Directory traversal vulnerability while serving static content</span></li><li><a shape="rect" href="s2-005.html" title="S2-005">S2-005</a> &#8212; <span class="smalltext">XWork ParameterInterceptors bypass allows remote command execution</span></li><li><a shape="rect" href="s2-006.html" title="S2-006">S2-006</a> &#8212; <span class="smalltext">Multiple Cross-Site Scripting (XSS)
  in XWork generated error pages</span></li><li><a shape="rect" href="s2-007.html" title="S2-007">S2-007</a> &#8212; <span class="smalltext">User input is evaluated as an OGNL expression when there's a conversion error</span></li><li><a shape="rect" href="s2-008.html" title="S2-008">S2-008</a> &#8212; <span class="smalltext">Multiple critical vulnerabilities in Struts2</span></li><li><a shape="rect" href="s2-009.html" title="S2-009">S2-009</a> &#8212; <span class="smalltext">ParameterInterceptor vulnerability allows remote command execution</span></li><li><a shape="rect" href="s2-010.html" title="S2-010">S2-010</a> &#8212; <span class="smalltext">When using Struts 2 token mechanism for CSRF protection, token check may be bypassed by misusing known session attributes</span></li><li><a shape="rect" href="s2-011.html" title="S2-011">S2-011</a> &#8212; <span class="smalltext">Long request parameter names might significantly promote the effectiveness of DOS attacks</span></li><li><a shape
 ="rect" href="s2-012.html" title="S2-012">S2-012</a> &#8212; <span class="smalltext">Showcase app vulnerability allows remote command execution</span></li><li><a shape="rect" href="s2-013.html" title="S2-013">S2-013</a> &#8212; <span class="smalltext">A vulnerability, present in the <em>includeParams</em> attribute of the <em>URL</em> and <em>Anchor</em> Tag, allows remote command execution</span></li><li><a shape="rect" href="s2-014.html" title="S2-014">S2-014</a> &#8212; <span class="smalltext">A vulnerability introduced by forcing parameter inclusion in the <em>URL</em> and <em>Anchor</em> Tag allows remote command execution, session access and manipulation and XSS attacks</span></li><li><a shape="rect" href="s2-015.html" title="S2-015">S2-015</a> &#8212; <span class="smalltext">A vulnerability introduced by wildcard matching mechanism or double evaluation of OGNL Expression allows remote command execution.</span></li><li><a shape="rect" href="s2-016.html" title="S2-016">S2-016</
 a> &#8212; <span class="smalltext">A vulnerability introduced by manipulating parameters prefixed with "action:"/"redirect:"/"redirectAction:" allows remote command execution</span></li><li><a shape="rect" href="s2-017.html" title="S2-017">S2-017</a> &#8212; <span class="smalltext">A vulnerability introduced by manipulating parameters prefixed with "redirect:"/"redirectAction:" allows for open redirects</span></li><li><a shape="rect" href="s2-018.html" title="S2-018">S2-018</a> &#8212; <span class="smalltext">Broken Access Control Vulnerability in Apache Struts2</span></li><li><a shape="rect" href="s2-019.html" title="S2-019">S2-019</a> &#8212; <span class="smalltext">Dynamic Method Invocation disabled by default</span></li></ul></div>
         </div>
 
                     <div class="tabletitle">
@@ -188,6 +188,12 @@ under the License. 
                                     $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>

Added: websites/production/struts/content/development/2.x/docs/security.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/security.html (added)
+++ websites/production/struts/content/development/2.x/docs/security.html Tue Oct  1 06:43:55 2013
@@ -0,0 +1,173 @@
+<!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='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
+    <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
+    <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushXml.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>Security</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="security.html">Security</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="http://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">Security</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=34024409">
+                <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=34024409">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=34024409">
+                <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=34024409">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=34024409">
+                <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=34024409">Add News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><h3><a shape="rect" name="Security-Securitytips"></a>Security tips</h3>
+
+<p>The Apache Struts 2 doesn't provide any security mechanism - it is just a pure web framework. Below are few tips you should consider during application development with the Apache Struts 2.</p>
+
+<h4><a shape="rect" name="Security-RestrictaccesstotheConfigBrowser"></a>Restrict access to the Config Browser</h4>
+
+<p>&#65279;<a shape="rect" href="config-browser-plugin.html" title="Config Browser Plugin">Config Browser Plugin</a>&#160;expose internal configuration and should be used only during development phase. If you must use it on production site, we strictly recommend restricting access to it - you can use &#160;Basic Authentication or any other security mechanism (e.g. <a shape="rect" class="external-link" href="http://shiro.apache.org/">Apache Shiro</a>)</p>
+
+<h4><a shape="rect" name="Security-Don%27tmixdifferentaccesslevelsinthesamenamespace"></a>Don't mix different access levels in the same namespace</h4>
+
+<p>Very often access to different resources is controlled base on URL patterns, see snippet below. Because of that you cannot mix actions with different security levels in the same namespace. Always group actions in one namespace by security level.</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+    &lt;security-constraint&gt;
+        &lt;web-resource-collection&gt;
+            &lt;web-resource-name&gt;admin&lt;/web-resource-name&gt;
+            &lt;url-pattern&gt;/secure/*&lt;/url-pattern&gt;
+        &lt;/web-resource-collection&gt;
+        &lt;auth-constraint&gt;
+            &lt;role-name&gt;admin&lt;/role-name&gt;
+        &lt;/auth-constraint&gt;
+    &lt;/security-constraint&gt;
+]]></script>
+</div></div>
+</div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>
\ No newline at end of file

Modified: websites/production/struts/content/development/2.x/docs/stream-result.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/stream-result.html (original)
+++ websites/production/struts/content/development/2.x/docs/stream-result.html Tue Oct  1 06:43:55 2013
@@ -136,7 +136,6 @@ under the License. 
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent">
-
 <p>A custom Result type for sending raw data (via an InputStream) directly to the
 HttpServletResponse. Very useful for allowing users to download content.</p>
 
@@ -165,6 +164,67 @@ provide <code>getContentType()</code> to
 
 <h1><a shape="rect" name="StreamResult-Examples"></a>Examples</h1>
 
+<h2><a shape="rect" name="StreamResult-AnnotationbasedConfiguration"></a>Annotation based Configuration</h2>
+
+<p>To configure Actions and Results with Annotations you need to activate the Struts2 <a shape="rect" href="convention-plugin.html" title="Convention Plugin">Convention Plugin</a> in your Struts2 application.</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+package com.mycompany.webapp.actions;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+import org.apache.struts2.convention.annotation.Result;
+
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionSupport;
+
+@Result(
+	name = "success", 
+	type = "stream", 
+	params = { 
+		"contentType", "${type}", 
+		"inputName", "stream", 
+		"bufferSize", "1024", 
+		"contentDisposition", "attachment;filename=\"${filename}\"" 
+	}
+)
+public class FileDisplay extends ActionSupport {
+
+	private String type = "image/jpeg";
+	private String filename;
+	private InputStream stream;
+
+	public String execute() throws Exception {
+
+		filename = "myimage.jpg";
+		File img = new File("/path/to/image/image.jpg");
+		stream = new FileInputStream(img);
+
+		return Action.SUCCESS;
+	}
+	
+	private String getType() {
+		return this.type;
+	}
+	
+	private String getFilename() {
+		return this.filename;
+	}
+	
+	private String getStream() {
+		return this.stream;
+	}
+}
+
+]]></script>
+</div></div>
+
+
+<h2><a shape="rect" name="StreamResult-XMLbasedConfiguration"></a>XML based Configuration</h2>
+
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;result name="success" type="stream"&gt;

Modified: websites/production/struts/content/development/2.x/docs/struts-2-annotations.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-2-annotations.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-2-annotations.html Tue Oct  1 06:43:55 2013
@@ -174,7 +174,7 @@ under the License. 
 <p>In a <a shape="rect" href="debugging-struts.html" title="Debugging Struts">previous tutorial</a> we reviewed how to use the Struts 2 Configuration plugin to view the details of how Struts 2 has configured your application.  When using the Convention plugin, it's very handy to also use the Configuration plugin during development.  On the example application's home page is a link to the application's configuration.  Click on that link and then the hello link on the left menu (under Actions in default).  You'll see the configuration for the hello action including it's Action class, result, and view page.</p>
 
 
-<p><span class="image-wrap" style=""><img src="struts-2-annotations.data/Screen+shot+2010-10-24+at+10.51.45+AM.png" style="border: 1px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="struts-2-annotations.data/Screen-shot-2010-10-24-at-10.51.45-AM.png" style="border: 1px solid black"></span></p>
 
 <h3><a shape="rect" name="Struts2Annotations-Annotations"></a>Annotations</h3>
 

Modified: websites/production/struts/content/development/2.x/docs/struts-2-form-tags.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-2-form-tags.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-2-form-tags.html Tue Oct  1 06:43:55 2013
@@ -147,7 +147,7 @@ under the License. 
 
 <p>To enable the user to edit his information that is stored in the Person object, we need to create a form like this one:</p>
 
-<p><span class="image-wrap" style=""><img src="struts-2-form-tags.data/Screen+shot+2010-04-25+at+8.39.59+AM.png" style="border: 0px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="struts-2-form-tags.data/Screen-shot-2010-04-25-at-8.39.59-AM.png" style="border: 0px solid black"></span></p>
 
 <p>The form allows the user to make changes.  After submitting the form, the Struts 2 framework will update the state of the Person object.</p>
 

Modified: websites/production/struts/content/development/2.x/docs/struts-2-maven-archetypes.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-2-maven-archetypes.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-2-maven-archetypes.html Tue Oct  1 06:43:55 2013
@@ -139,15 +139,43 @@ under the License. 
 <p><b>Contents</b></p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1334391313780 {margin-left: 0px;padding: 0px;}
-div.rbtoc1334391313780 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
-div.rbtoc1334391313780 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1379445072272 {margin-left: 0px;padding: 0px;}
+div.rbtoc1379445072272 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
+div.rbtoc1379445072272 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="rbtoc1334391313780">
-<ul><li><span class="TOCOutline">1</span> <a shape="rect" href="#Struts2MavenArchetypes-AvailableArchetypes">Available Archetypes</a></li><ul><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#Struts2MavenArchetypes-TheBlankArchetype%28struts2archetypeblank%29">The Blank Archetype (struts2-archetype-blank)</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#Struts2MavenArchetypes-TheStarterArchetype%28struts2archetypestarter%29">The Starter Archetype (struts2-archetype-starter)</a></li><li><span class="TOCOutline">1.3</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletBlankArchetype%28struts2archetypeportlet%29">The Portlet Blank Archetype (struts2-archetype-portlet)</a></li><li><span class="TOCOutline">1.4</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletDatabaseArchetype%28struts2archetypedbportlet%29">The Portlet Database Archetype (struts2-archetype-dbportlet)</a></li><li><span class="TOCOutline">1.5</span> <a shape="rect"
  href="#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29">The Blank Convention Archetype (struts2-archetype-convention)</a></li><li><span class="TOCOutline">1.6</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePluginArchetype%28struts2archetypeplugin%29">The Plugin Archetype (struts2-archetype-plugin)</a></li></ul><li><span class="TOCOutline">2</span> <a shape="rect" href="#Struts2MavenArchetypes-CreatinganApplicationUsingaMavenArchetype">Creating an Application Using a Maven Archetype</a></li><ul><li><span class="TOCOutline">2.1</span> <a shape="rect" href="#Struts2MavenArchetypes-Stagingrepository">Staging repository</a></li><li><span class="TOCOutline">2.2</span> <a shape="rect" href="#Struts2MavenArchetypes-ArchetypeParameters">Archetype Parameters</a></li></ul><li><span class="TOCOutline">3</span> <a shape="rect" href="#Struts2MavenArchetypes-CommandQuickReference">Command Quick Reference</a></li></ul></div>
+/*]]>*/</style><div class="rbtoc1379445072272">
+<ul><li><span class="TOCOutline">1</span> <a shape="rect" href="#Struts2MavenArchetypes-Quickstart">Quickstart</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#Struts2MavenArchetypes-AvailableArchetypes">Available Archetypes</a></li><ul><li><span class="TOCOutline">2.1</span> <a shape="rect" href="#Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29">The Blank Convention Archetype (struts2-archetype-convention)</a></li><li><span class="TOCOutline">2.2</span> <a shape="rect" href="#Struts2MavenArchetypes-TheBlankArchetype%28struts2archetypeblank%29">The Blank Archetype (struts2-archetype-blank)</a></li><li><span class="TOCOutline">2.3</span> <a shape="rect" href="#Struts2MavenArchetypes-TheStarterArchetype%28struts2archetypestarter%29">The Starter Archetype (struts2-archetype-starter)</a></li><li><span class="TOCOutline">2.4</span> <a shape="rect" href="#Struts2MavenArchetypes-TheAngularJSArchetype%28struts2archetypeangularjs%29">The
  AngularJS Archetype (struts2-archetype-angularjs)</a></li><li><span class="TOCOutline">2.5</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletBlankArchetype%28struts2archetypeportlet%29">The Portlet Blank Archetype (struts2-archetype-portlet)</a></li><li><span class="TOCOutline">2.6</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletDatabaseArchetype%28struts2archetypedbportlet%29">The Portlet Database Archetype (struts2-archetype-dbportlet)</a></li><li><span class="TOCOutline">2.7</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePluginArchetype%28struts2archetypeplugin%29">The Plugin Archetype (struts2-archetype-plugin)</a></li></ul><li><span class="TOCOutline">3</span> <a shape="rect" href="#Struts2MavenArchetypes-CreatinganApplicationUsingaMavenArchetype">Creating an Application Using a Maven Archetype</a></li><ul><li><span class="TOCOutline">3.1</span> <a shape="rect" href="#Struts2MavenArchetypes-Stagingrepository">Staging repository</a></li><li>
 <span class="TOCOutline">3.2</span> <a shape="rect" href="#Struts2MavenArchetypes-ArchetypeParameters">Archetype Parameters</a></li></ul><li><span class="TOCOutline">4</span> <a shape="rect" href="#Struts2MavenArchetypes-CommandQuickReference">Command Quick Reference</a></li></ul></div>
+
+<h2><a shape="rect" name="Struts2MavenArchetypes-Quickstart"></a>Quickstart</h2>
+
+<p>A recommended way to start with Struts2 archetypes is to work with the archetype catalog.</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -DarchetypeCatalog=http://struts.apache.org/
+]]></script>
+</div></div>
 
 <h2><a shape="rect" name="Struts2MavenArchetypes-AvailableArchetypes"></a>Available Archetypes</h2>
 
+<h3><a shape="rect" name="Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29"></a>The Blank Convention Archetype (struts2-archetype-convention)</h3>
+
+<h4><a shape="rect" name="Struts2MavenArchetypes-Features"></a>Features</h4>
+
+<ul><li>Convention-based validation</li><li>Example actions</li><li>Package-level resource bundle</li><li>Unit-testing</li><li>Google AppEgine aware</li></ul>
+
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-convention \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
+
 <h3><a shape="rect" name="Struts2MavenArchetypes-TheBlankArchetype%28struts2archetypeblank%29"></a>The Blank Archetype (struts2-archetype-blank)</h3>
 
 <p></p><p>The Struts 2 Blank Archetype ("blank-archetype") provides a minimal, but complete, Struts 2 application. It demonstrates some of the most basic Struts 2 concepts.</p>
@@ -158,6 +186,18 @@ div.rbtoc1334391313780 li {margin-left: 
 
 
 <p>See the <a shape="rect" href="struts-2-blank-archetype.html" title="Struts 2 Blank Archetype">Struts 2 Blank Archetype</a> page for more information, including some basic Maven information, how to build and run the app, and basic application information.</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-blank \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+
+]]></script>
+</div></div>
+
 
 <h3><a shape="rect" name="Struts2MavenArchetypes-TheStarterArchetype%28struts2archetypestarter%29"></a>The Starter Archetype (struts2-archetype-starter)</h3>
 
@@ -168,6 +208,37 @@ div.rbtoc1334391313780 li {margin-left: 
 <ul><li>Sitemesh integration</li><li>Action example (instantiated both through Spring and Struts)</li><li>Spring integration</li><li>Validation example (action and action-alias level)</li><li>Conversion example (global and action level)</li><li>Resource bundle (both global, action and package level)</li></ul>
 
 
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-starter \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
+
+
+<h3><a shape="rect" name="Struts2MavenArchetypes-TheAngularJSArchetype%28struts2archetypeangularjs%29"></a>The AngularJS Archetype (struts2-archetype-angularjs)</h3>
+
+<h4><a shape="rect" name="Struts2MavenArchetypes-Features"></a>Features</h4>
+
+<ul><li>Convention-based Action Configuration</li><li>Example actions with JSON Result</li><li>Example for AngularJS and Struts2 Integration</li></ul>
+
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-angularjs \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
+
+
 <h3><a shape="rect" name="Struts2MavenArchetypes-ThePortletBlankArchetype%28struts2archetypeportlet%29"></a>The Portlet Blank Archetype (struts2-archetype-portlet)</h3>
 
 <p>The Portlet blank archetype creates a minimally populated JSR 168 portlet.</p>
@@ -177,6 +248,18 @@ div.rbtoc1334391313780 li {margin-left: 
 <ul><li>View, Edit, and Help mode examples</li><li>Simple form for preferences in Edit mode</li><li>Can be deployed as a servlet or portlet application</li><li>Can use Maven Jetty plugin to deploy with the pluto-embedded profile (usage 'mvn jetty:run -Ppluto-embedded', then access <a shape="rect" class="external-link" href="http://localhost:8080/" rel="nofollow">http://localhost:8080/</a>&lt;artifactId&gt;/pluto/index.jsp)</li></ul>
 
 
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-portlet \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
+
+
 <h3><a shape="rect" name="Struts2MavenArchetypes-ThePortletDatabaseArchetype%28struts2archetypedbportlet%29"></a>The Portlet Database Archetype (struts2-archetype-dbportlet)</h3>
 
 <p>The Portlet database archetype creates a simple JSR 168 portlet that displays the contents of a database table.</p>
@@ -186,12 +269,16 @@ div.rbtoc1334391313780 li {margin-left: 
 <ul><li>Uses Spring and Hsql to show a real database query</li><li>Builtin caching of query results</li><li>View, Edit, and Help mode examples</li><li>Simple form for preferences in Edit mode</li><li>Can be deployed as a servlet or portlet application</li><li>Can use Maven Jetty plugin to deploy as a servlet webapp</li></ul>
 
 
-<h3><a shape="rect" name="Struts2MavenArchetypes-TheBlankConventionArchetype%28struts2archetypeconvention%29"></a>The Blank Convention Archetype (struts2-archetype-convention)</h3>
-
-<h4><a shape="rect" name="Struts2MavenArchetypes-Features"></a>Features</h4>
-
-<ul><li>Convention-based validation</li><li>Example actions</li><li>Package-level resource bundle</li><li>Unit-testing</li><li>Google AppEgine aware</li></ul>
-
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myWebApp \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-dbportlet \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
 
 <h3><a shape="rect" name="Struts2MavenArchetypes-ThePluginArchetype%28struts2archetypeplugin%29"></a>The Plugin Archetype (struts2-archetype-plugin)</h3>
 
@@ -200,6 +287,19 @@ div.rbtoc1334391313780 li {margin-left: 
 <ul><li>Example new result type</li><li>Example XML-based configuration</li></ul>
 
 
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
+							-DartifactId=myPlugin \
+							-DarchetypeGroupId=org.apache.struts \
+							-DarchetypeArtifactId=struts2-archetype-plugin \
+							-DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt; \
+							-DremoteRepositories=http://struts.apache.org
+]]></script>
+</div></div>
+
+
 <h2><a shape="rect" name="Struts2MavenArchetypes-CreatinganApplicationUsingaMavenArchetype"></a>Creating an Application Using a Maven Archetype</h2>
 
 <p>Run the following command from your new project's parent directory. The project will be created in a sub-directory named after the <tt>artifactId</tt> parameter.</p>
@@ -218,11 +318,12 @@ mvn archetype:generate -B \
                        -DartifactId=tutorial \
                        -DarchetypeGroupId=org.apache.struts \
                        -DarchetypeArtifactId=struts2-archetype-blank \
-                       -DarchetypeVersion=&lt;version&gt;
+                       -DarchetypeVersion=&lt;CURRENT_STRUTS_VERSION&gt;
+		       -DremoteRepositories=http://struts.apache.org
 ]]></script>
 </div></div>
 
-<p>where &lt;version&gt; is archetype's version you want to use, eg. 2.2.1</p>
+<p>where &lt;CURRENT_STRUTS_VERSION&gt; is archetype's version you want to use, eg. 2.3.15.1</p>
 
 <h3><a shape="rect" name="Struts2MavenArchetypes-Stagingrepository"></a>Staging repository</h3>
 <p>If the above command will fail because of missing archetypes in central repository, you can try to use staging repository like below</p>

Modified: websites/production/struts/content/development/2.x/docs/struts-2-themes.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-2-themes.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-2-themes.html Tue Oct  1 06:43:55 2013
@@ -271,7 +271,7 @@ under the License. 
 <p>After redeploying the application the check boxes for the Car Models Owned should appear like:</p>
 
 
-<p><span class="image-wrap" style=""><img src="struts-2-themes.data/Screen+shot+2010-09-11+at+12.37.12+PM.png" style="border: 1px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="struts-2-themes.data/Screen-shot-2010-09-11-at-12.37.12-PM.png" style="border: 1px solid black"></span></p>
 
 
 <h3><a shape="rect" name="Struts2Themes-Summary"></a>Summary</h3>

Modified: websites/production/struts/content/development/2.x/docs/struts-control-tags.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-control-tags.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-control-tags.html Tue Oct  1 06:43:55 2013
@@ -135,7 +135,7 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="panelMacro"><table class="infoMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1">The example code for this tutorial, Control_Tags_Struts2_Mvn, is available on Google Code - <a shape="rect" class="external-link" href="http://code.google.com/p/struts2-examples/downloads/list" rel="nofollow">http://code.google.com/p/struts2-examples/downloads/list</a>. After downloading and unzipping the file, you'll have a folder named Control_Tags_Struts2_Mvn. In that folder will be a README.txt file with instructions on now to build and run the example application.</td></tr></table></div>
+            <div id="ConfluenceContent"><div class="panelMacro"><table class="infoMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1">The example code for this tutorial, control_tags, is available for checkout at <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/">https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/</a></td></tr></table></div>
 
 <h3><a shape="rect" name="StrutsControlTags-Introduction"></a>Introduction</h3>
 
@@ -247,7 +247,6 @@ under the License. 
 <h3><a shape="rect" name="StrutsControlTags-AdditionalIteratorAttributes"></a>Additional Iterator Attributes</h3>
 
 <p>The Struts 2 iterator tag has additional attributes you can use to control the begin and end values for specifying that the iterator tag should only loop over a part of the collection.  See the <a shape="rect" class="external-link" href="https://cwiki.apache.org/confluence/display/WW/iterator">iterator tag reference</a> for more information.</p>
-
 </div>
         </div>
 

Modified: websites/production/struts/content/development/2.x/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/struts-next.html (original)
+++ websites/production/struts/content/development/2.x/docs/struts-next.html Tue Oct  1 06:43:55 2013
@@ -159,7 +159,8 @@ under the License. 
 
 <h3><a shape="rect" name="StrutsNext-Undiscussedideas"></a>Undiscussed ideas</h3>
 
-<ul><li>Better support for modern webframeworks like AngularJS (@grobmeier)</li><li>Make use of slf4j and probably log4j2 (@grobmeier) - support for slf4j is already there, thanks to Johannes, check <a shape="rect" href="logging.html" title="Logging">Logging</a></li><li>Provider alternatives to java property file translations (@grobmeier)</li><li>Replace css and xhtml theme with an new html5 theme. (@jogep)</li></ul>
+<ul><li>Better support for modern webframeworks like AngularJS (@grobmeier)</li><li>Make use of slf4j and probably log4j2 (@grobmeier) - support for slf4j is already there, thanks to Johannes, check <a shape="rect" href="logging.html" title="Logging">Logging</a></li><li>Provider alternatives to java property file translations (@grobmeier)</li><li>Replace css and xhtml theme with an new html5 theme. (@jogep)</li><li>Switch to strict DMI by default - allow only defined methods to be accessible via DMI - user can always change that list</li><li>Extract XML configuration to dedicated plugin - XWork will provide only configuration via code, then user can decide which configuration to use - code, XML, convention, DB?</li></ul>
+
 </div>
         </div>
 

Modified: websites/production/struts/content/development/2.x/docs/strutsproperties.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/strutsproperties.html (original)
+++ websites/production/struts/content/development/2.x/docs/strutsproperties.html Tue Oct  1 06:43:55 2013
@@ -228,7 +228,7 @@ struts.serve.static.browserCache=true
 ### like method:bar (but not action:foo).
 ### An alternative to implicit dynamic method invocation is to use wildcard
 ### mappings, such as &lt;action name="*/*" method="{2}" class="actions.{1}"&gt;
-struts.enable.DynamicMethodInvocation = true
+struts.enable.DynamicMethodInvocation = false
 
 ### Set this to true if you wish to allow slashes in your action names.  If false,
 ### Actions names cannot have slashes, and will be accessible via any directory

Modified: websites/production/struts/content/development/2.x/docs/unit-testing.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/unit-testing.html (original)
+++ websites/production/struts/content/development/2.x/docs/unit-testing.html Tue Oct  1 06:43:55 2013
@@ -175,7 +175,7 @@ under the License. 
 <p>For our first test we'll test that there should be no validation errors.  In the normal flow of this application the user would first enter the form data shown on the register.jsp page.</p>
 
 
-<p><span class="image-wrap" style=""><img src="unit-testing.data/Screen+shot+2012-02-17+at+2.46.54+PM.png" style="border: 1px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="unit-testing.data/Screen-shot-2012-02-17-at-2.46.54-PM.png" style="border: 1px solid black"></span></p>
 
 <p>The input fields for the form have the following name values:  personBean.firstName, personBean.lastName, personBean.email, and personBean.age.  When the user fills out those fields Struts will take the values and provide them to the appropriate set methods of the personBean object.  So as part of the test I need to simulate the user filling out these form fields.  The StrutsTestCase provides a request object (of type MockHttpServletRequest) that I can use to set these values in the request scope.</p>
 

Modified: websites/production/struts/content/development/2.x/docs/using-struts-2-tags.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/using-struts-2-tags.html (original)
+++ websites/production/struts/content/development/2.x/docs/using-struts-2-tags.html Tue Oct  1 06:43:55 2013
@@ -242,7 +242,7 @@ If you want to actually read the Struts 
 
 <p>The Struts 2 <a shape="rect" href="textfield.html" title="textfield">textfield</a> tag provides a input html tag of tag text and the submit tag creates a submit button.  When the index page is return by the server to the browser you should see:</p>
 
-<p><span class="image-wrap" style=""><img src="using-struts-2-tags.data/Struts+Form.png" style="border: 0px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="using-struts-2-tags.data/Struts-Form.png" style="border: 0px solid black"></span></p>
 
 <p>The Struts form, textfield, and submit tags were converted to this HTML.</p>
 

Modified: websites/production/struts/content/development/2.x/docs/validation.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/validation.html (original)
+++ websites/production/struts/content/development/2.x/docs/validation.html Tue Oct  1 06:43:55 2013
@@ -143,11 +143,11 @@ under the License. 
 
 <p><b>CONTENTS</b></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1357839122731 {margin-left: 0px;padding: 0px;}
-div.rbtoc1357839122731 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1357839122731 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1378549220700 {margin-left: 0px;padding: 0px;}
+div.rbtoc1378549220700 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1378549220700 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="rbtoc1357839122731">
+/*]]>*/</style><div class="rbtoc1378549220700">
 <ul><li><span class="TOCOutline">1</span> <a shape="rect" href="#Validation-UsingAnnotations">Using Annotations</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#Validation-Examples">Examples</a></li><li><span class="TOCOutline">3</span> <a shape="rect" href="#Validation-BundledValidators">Bundled Validators</a></li><li><span class="TOCOutline">4</span> <a shape="rect" href="#Validation-RegisteringValidators">Registering Validators</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#Validation-TurningonValidation">Turning on Validation</a></li><li><span class="TOCOutline">6</span> <a shape="rect" href="#Validation-ValidatorScopes">Validator Scopes</a></li><ul><li><span class="TOCOutline">6.1</span> <a shape="rect" href="#Validation-Notes">Notes</a></li></ul><li><span class="TOCOutline">7</span> <a shape="rect" href="#Validation-DefiningValidationRules">Defining Validation Rules</a></li><li><span class="TOCOutline">8</span> <a shape="rect" href="#V
 alidation-LocalizingandParameterizingMessages">Localizing and Parameterizing Messages</a></li><li><span class="TOCOutline">9</span> <a shape="rect" href="#Validation-ValidatorFlavor">Validator Flavor</a></li><li><span class="TOCOutline">10</span> <a shape="rect" href="#Validation-NonFieldValidatorVsFieldValidator">Non-Field Validator Vs Field-Validator </a></li><li><span class="TOCOutline">11</span> <a shape="rect" href="#Validation-ShortCircuitingValidator">Short-Circuiting Validator</a></li><li><span class="TOCOutline">12</span> <a shape="rect" href="#Validation-HowValidatorsofanActionareFound">How Validators of an Action are Found</a></li><li><span class="TOCOutline">13</span> <a shape="rect" href="#Validation-Resources">Resources</a></li><li><span class="TOCOutline">14</span> <a shape="rect" href="#Validation-Next%3ALocalizationLocalization">Next: Localization</a></li></ul></div>
 
 <h2><a shape="rect" name="Validation-UsingAnnotations"></a>Using Annotations</h2>
@@ -204,6 +204,8 @@ all the validators you intend to use.</p
 ]]></script>
 </div></div>
 
+<div class="panelMacro"><table class="noteMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1"><b>Struts 2.1 and Prior</b><br clear="none">The <tt>validators.xml</tt> used to reference a DTD hosted by Opensymphony, the original location of the XWork project. Since the the move to Apache Struts, DTDs were changed. Please ensure in your projects to include the DTD header as described in the examples found here</td></tr></table></div>
+
 <div class="panelMacro"><table class="noteMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1"><b>Struts 2.0.7 and Prior</b><br clear="none">The <tt>validators.xml</tt> containing custom validators needs to contain a copy of the default validators. No DTD was used in validators.xml. See: <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases">http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases</a></td></tr></table></div>
 
 <h2><a shape="rect" name="Validation-TurningonValidation"></a>Turning on Validation</h2>

Added: websites/production/struts/content/development/2.x/docs/version-notes-23152.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/version-notes-23152.html (added)
+++ websites/production/struts/content/development/2.x/docs/version-notes-23152.html Tue Oct  1 06:43:55 2013
@@ -0,0 +1,204 @@
+<!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='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
+    <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
+    <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushPlain.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>Version Notes 2.3.15.2</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="migration-guide.html">Migration Guide</a>&nbsp;&gt;&nbsp;<a href="version-notes-23152.html">Version Notes 2.3.15.2</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="http://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">Version Notes 2.3.15.2</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=34019018">
+                <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=34019018">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=34019018">
+                <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=34019018">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=34019018">
+                <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=34019018">Add News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><p><img align="middle" class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" alt="" border="0"> These are the notes for the Struts 2.3.15.2 distribution.</p>
+
+<p><img align="middle" class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/check.gif" height="16" width="16" alt="" border="0"> For prior notes in this release series, see <a shape="rect" href="version-notes-23151.html" title="Version Notes 2.3.15.1">Version Notes 2.3.15.1</a> and <a shape="rect" href="version-notes-2315.html" title="Version Notes 2.3.15">Version Notes 2.3.15</a></p>
+
+<ul><li>If you are a Maven user, you might want to get started using the <a shape="rect" href="struts-2-maven-archetypes.html" title="Struts 2 Maven Archetypes">Maven Archetype</a>.</li><li>Another quick-start entry point is the <b>blank</b> application. Rename and deploy the WAR as a starting point for your own development.</li></ul>
+
+
+<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Maven Dependency</b></div><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
+  &lt;artifactId&gt;struts2-core&lt;/artifactId&gt;
+  &lt;version&gt;2.3.15.2&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div>
+
+<p>You can also use Struts Archetype Catalog like below</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Struts Archetype Catalog</b></div><div class="codeContent panelContent">
+<script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[
+mvn archetype:generate -DarchetypeCatalog=http://struts.apache.org/
+]]></script>
+</div></div>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><b>Staging Repository</b></div><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;repositories&gt;
+  &lt;repository&gt;
+    &lt;id&gt;apache.nexus&lt;/id&gt;
+    &lt;name&gt;ASF Nexus Staging&lt;/name&gt;
+    &lt;url&gt;https://repository.apache.org/content/groups/staging/&lt;/url&gt;
+  &lt;/repository&gt;
+&lt;/repositories&gt;
+]]></script>
+</div></div>
+
+<h2><a shape="rect" name="VersionNotes2.3.15.2-InternalChanges"></a>Internal Changes</h2>
+
+<ul class="alternate" type="square"><li>Broken Access Control Issue fixed</li><li>Dynamic Method Invocation set to false by default</li></ul>
+
+
+<h3><a shape="rect" name="VersionNotes2.3.15.2-IssueDetail"></a>Issue Detail</h3>
+
+<ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12325012&amp;projectId=12311041">JIRA Release Notes 2.3.15.2</a></li><li><a shape="rect" href="s2-018.html" title="S2-018">Security Bulletin S2-018</a></li><li><a shape="rect" href="s2-019.html" title="S2-019">Security Bulletin S2-019</a></li></ul>
+
+
+<h3><a shape="rect" name="VersionNotes2.3.15.2-IssueList"></a>Issue List</h3>
+
+<ul><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12324878">Struts 2.3.15.2 DONE</a></li><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12324168">Struts 2.3.16 TODO</a></li><li><a shape="rect" class="external-link" href="https://issues.apache.org/jira/issues/?filter=12318399">Struts 2.3.x TODO</a></li></ul>
+
+
+<h3><a shape="rect" name="VersionNotes2.3.15.2-Otherresources"></a>Other resources</h3>
+
+<ul><li><a shape="rect" class="external-link" href="http://www.mail-archive.com/commits%40struts.apache.org/" rel="nofollow">Commit Logs (Struts 1 and Struts 2)</a></li><li><a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/struts/struts2/trunk/">Source Code Repository (includes change browsing)</a></li></ul>
+</div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>
\ No newline at end of file

Modified: websites/production/struts/content/development/2.x/docs/websphere.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/websphere.html (original)
+++ websites/production/struts/content/development/2.x/docs/websphere.html Tue Oct  1 06:43:55 2013
@@ -187,6 +187,55 @@ public class LaunchServlet extends HttpS
 </div></div>
 <p>3) Run application and everything should work. </p></blockquote>
 
+<h2><a shape="rect" name="WebSphere-WebSphere6.5"></a>WebSphere 6.5</h2>
+
+<p>To make struts2 work in Websphere, one has to set Websphere specific properties, you may want to add that to the wiki:</p>
+
+<p>The properties are:</p>
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror = true
+com.ibm.ws.webcontainer.invokefilterscompatibility = true
+</pre>
+</div></div>
+
+<p>At least that is necessary when using StrutsPrepareAndExecuteFilter.</p>
+
+<p>In Websphre admin console one has to add those properties here:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>Servers &gt; Application servers &gt; {server name} &gt; Web container &gt; Custom Properties
+</pre>
+</div></div>
+
+<p>A wsadmin jython script to set those properties could look like this:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+
+def findObjectName(objectId):
+        index = objectId.find('(')
+        return objectId[0 : index]
+
+node = AdminNodeManagement.listNodes()[0]
+server = AdminConfig.list('Server')
+
+nodeName = findObjectName(node)
+serverName = findObjectName(server)
+
+webContainer = AdminConfig.list('WebContainer', node)
+webContainerDetails = AdminConfig.show(webContainer)
+
+if webContainerDetails.find("com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror") == -1:
+        print "creating prop: com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror"
+        AdminServerManagement.configureCustomProperty(nodeName, serverName, "WebContainer","com.ibm.ws.webcontainer.assumefiltersuccessonsecurityerror", "true")
+if webContainerDetails.find("com.ibm.ws.webcontainer.invokefilterscompatibility") == -1:
+        print "creating prop: com.ibm.ws.webcontainer.invokefilterscompatibility"
+        AdminServerManagement.configureCustomProperty(nodeName, serverName, "WebContainer", "com.ibm.ws.webcontainer.invokefilterscompatibility", "true")
+]]></script>
+</div></div>
+
+<p>Thanks to Christoph Nenning (christoph dot nenning at lex-com at net)</p>
+
 <h2><a shape="rect" name="WebSphere-JSESSIONIDhandling"></a>JSESSIONID handling</h2>
 
 <p>IBM WebSphere Application Server uses the JSESSIONID information to keep track of the client session. If you have an application where the application client must navigate across multiple WebSphere Application Server nodes residing in same domain, then the JSESSIONID information may be over-written on the client because multiple JSESSIONID cookies received with the same name and path.</p>

Modified: websites/production/struts/content/development/2.x/docs/wildcard-method-selection.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/wildcard-method-selection.html (original)
+++ websites/production/struts/content/development/2.x/docs/wildcard-method-selection.html Tue Oct  1 06:43:55 2013
@@ -144,7 +144,7 @@ under the License. 
 
 <h3><a shape="rect" name="WildcardMethodSelection-ExampleApplication"></a>Example Application</h3>
 
-<p><span class="image-wrap" style=""><img src="wildcard-method-selection.data/Screen+shot+2010-05-30+at+8.51.40+AM.png" style="border: 1px solid black"></span></p>
+<p><span class="image-wrap" style=""><img src="wildcard-method-selection.data/Screen-shot-2010-05-30-at-8.51.40-AM.png" style="border: 1px solid black"></span></p>
 
 <p>The example application that supports this tutorial shows how to use Struts 2's wildcard method selection methodology.  The example application is just a simple one that lists some people and lets you edit them, delete them, and add a new person to the list. Everything that the application needs to do with a Person (the model class) is controlled by the Struts 2 ActionSupport class PersonAction. The PersonAction class has several different methods (e.g. create, edit, delete) that are called depending on what the user wants to do.</p>