Author: lukaszlenart
Date: Tue Jul 30 09:36:06 2013
New Revision: 871833

Log:
Updates draft docs

Modified:
    websites/production/struts/content/development/2.x/docs/interceptors.html
    websites/production/struts/content/development/2.x/docs/objectfactory.html
    
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
    websites/production/struts/content/development/2.x/docs/plugins.html
    websites/production/struts/content/development/2.x/docs/result-types.html
    
websites/production/struts/content/development/2.x/docs/struts-control-tags.html
    
websites/production/struts/content/development/2.x/docs/struts-defaultxml.html
    
websites/production/struts/content/development/2.x/docs/strutsxml-examples.html
    
websites/production/struts/content/development/2.x/docs/using-struts-2-tags.html

Modified: 
websites/production/struts/content/development/2.x/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/interceptors.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/interceptors.html 
Tue Jul 30 09:36:06 2013
@@ -240,6 +240,8 @@ under the License. 
 <struts>
     <bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />
     <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" 
class="org.apache.struts2.impl.StrutsObjectFactory" />
+    <bean type="com.opensymphony.xwork2.factory.ResultFactory" name="xwork" 
class="org.apache.struts2.factory.StrutsResultFactory" />
+    <bean type="com.opensymphony.xwork2.factory.ResultFactory" 
name="struts" class="org.apache.struts2.factory.StrutsResultFactory" />
 
     <bean type="com.opensymphony.xwork2.FileManager" 
class="com.opensymphony.xwork2.util.fs.DefaultFileManager" name="system" 
scope="singleton"/>
 

Modified: 
websites/production/struts/content/development/2.x/docs/objectfactory.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/objectfactory.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/objectfactory.html 
Tue Jul 30 09:36:06 2013
@@ -138,6 +138,7 @@ under the License. 
 
 <h2><a shape="rect" name="ObjectFactory-Customize"></a>Customize</h2>
 
+<h3><a shape="rect" name="ObjectFactory-ExtendObjectFactory"></a>Extend 
ObjectFactory</h3>
 <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">Customized ObjectFactory must extend ObjectFactory or any of its 
descendants and have a default, no-argument constructor.</td></tr></table></div>
 
 <p>To register a customized ObjectFactory, add or edit an entry in 
<tt>struts.properties</tt></p>
@@ -156,6 +157,15 @@ public class MyObjectFactory extends Obj
 ]]></script>
 </div></div>
 
+<h3><a shape="rect" name="ObjectFactory-Definededicatedbuilder"></a>Define 
dedicated builder</h3>
+<p>If you want to just extend one part of ObjectFactory, ie. to change how <a 
shape="rect" href="result-types.html" title="Result Types">Result Types</a> are 
build, you can implement <tt>ResultBuilder</tt> interface below and register it 
with dedicated name, see <a shape="rect" 
href="plugins.html#Plugins-ExtensionPoints">Extension Points</a> for more 
details. All these builders are available as from version 2.3.16.</p>
+
+<p>List of Builder interfaces:</p>
+<ul class="alternate" type="square"><li><tt>ResultBuilder</tt> - dedicated 
interfaces used to build <a shape="rect" href="result-types.html" title="Result 
Types">Result Types</a>
+       <ul class="alternate" type="square"><li><tt>StrutsResultBuilder</tt> 
it's internal implementation which checks if Result implements 
<tt>ParamNameAwareResult</tt> interface to restrict names of parameters set on 
the instance of Result, see <a shape="rect" href="result-types.html" 
title="Result Types">Result Types</a> for more info.</li></ul>
+       </li></ul>
+
+
 <h2><a shape="rect" name="ObjectFactory-Next%3AActionMapper"></a>Next: <a 
shape="rect" href="actionmapper.html" 
title="ActionMapper">ActionMapper</a></h2></div>
         </div>
 

Modified: 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
==============================================================================
--- 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
 (original)
+++ 
websites/production/struts/content/development/2.x/docs/parameters-interceptor.html
 Tue Jul 30 09:36:06 2013
@@ -186,6 +186,13 @@ ParametersInterceptor}. For example, act
 blacklist of paramters they will reject to prevent clients from setting other 
unexpected (and possibly dangerous)
 parameters.</p>
 
+<p>Using ParameterNameAware could be dangerous as 
ParameterNameAware#acceptableParameterName(String) takes precedence
+over ParametersInterceptor which means if ParametersInterceptor excluded given 
parameter name you can accept it with
+ParameterNameAware#acceptableParameterName(String).</p>
+
+<p>The best idea is to define very tight restrictions with 
ParametersInterceptor and relax them per action with
+ParameterNameAware#acceptableParameterName(String)</p>
+
 
 <h2><a shape="rect" name="ParametersInterceptor-Parameters"></a>Parameters</h2>
 
@@ -234,12 +241,12 @@ actions. However, if you wish to apply a
 this interceptor and override the #acceptableName(String) method.</p>
 
 
-<div class="panelMacro"><table class="warningMacro"><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/forbidden.gif"; 
width="16" height="16" alt="" border="0"></td><td colspan="1" 
rowspan="1"><p>Using ParameterNameAware could be dangerous as @{link 
ParameterNameAware#acceptableParameterName(String)} takes precedence
+<div class="panelMacro"><table class="warningMacro"><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/forbidden.gif"; 
width="16" height="16" alt="" border="0"></td><td colspan="1" 
rowspan="1"><p>Using ParameterNameAware could be dangerous as 
ParameterNameAware#acceptableParameterName(String) takes precedence
 over ParametersInterceptor which means if ParametersInterceptor excluded given 
parameter name you can accept it with
-@{link ParameterNameAware#acceptableParameterName(String)}.</p>
+ParameterNameAware#acceptableParameterName(String).</p>
 
 <p>The best idea is to define very tight restrictions with 
ParametersInterceptor and relax them per action with
-@{link 
ParameterNameAware#acceptableParameterName(String)}</p></td></tr></table></div>
+ParameterNameAware#acceptableParameterName(String)</p></td></tr></table></div>
 
 <h2><a shape="rect" 
name="ParametersInterceptor-Warningonmissingparameters"></a>Warning on missing 
parameters</h2>
 

Modified: websites/production/struts/content/development/2.x/docs/plugins.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/plugins.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/plugins.html Tue 
Jul 30 09:36:06 2013
@@ -173,7 +173,7 @@ Assuming /static/main.css is inside a pl
 
 <p>The following extension points are available in Struts 2:</p>
 
-<p><table border="1"><tr><th colspan="1" rowspan="1">Type</th><th colspan="1" 
rowspan="1">Property</th><th colspan="1" rowspan="1">Scope</th><th colspan="1" 
rowspan="1">Description</th></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.ObjectFactory</td><td colspan="1" 
rowspan="1">struts.objectFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates actions, results, 
and interceptors</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.ActionProxyFactory</td><td colspan="1" 
rowspan="1">struts.actionProxyFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates the 
ActionProxy</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.ObjectTypeDeterminer</td><td 
colspan="1" rowspan="1">struts.objectTypeDeterminer</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Determines what the key 
and element class of a Map or Collection should be</td></tr><tr><td colspan="1
 " rowspan="1">org.apache.struts2.dispatcher.mapper.ActionMapper</td><td 
colspan="1" rowspan="1">struts.mapper.class</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Determines the 
ActionMapping from a request and a URI from an ActionMapping</td></tr><tr><td 
colspan="1" 
rowspan="1">org.apache.struts2.dispatcher.multipart.MultiPartRequest</td><td 
colspan="1" rowspan="1">struts.multipart.parser</td><td colspan="1" 
rowspan="1">per request</td><td colspan="1" rowspan="1">Parses a multipart 
request (file upload)</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.freemarker.FreemarkerManager</td><td 
colspan="1" rowspan="1">struts.freemarker.manager.classname</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Loads and processes 
Freemarker templates</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.velocity.VelocityManager</td><td 
colspan="1" rowspan="1">struts.velocity.manager.classname</td><td colspan="1" 
rowsp
 an="1">singleton</td><td colspan="1" rowspan="1">Loads and processes Velocity 
templates</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.validator.ActionValidatorManager</td><td 
colspan="1" rowspan="1">struts.actionValidatorManager</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Main interface for 
validation managers (regular and annotation based).  Handles both the loading of
+<p><table border="1"><tr><th colspan="1" rowspan="1">Type</th><th colspan="1" 
rowspan="1">Property</th><th colspan="1" rowspan="1">Scope</th><th colspan="1" 
rowspan="1">Description</th></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.ObjectFactory</td><td colspan="1" 
rowspan="1">struts.objectFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates actions, results, 
and interceptors</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.factory.ResultFactory</td><td colspan="1" 
rowspan="1">struts.objectFactory.resultFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Dedicated factory used to 
create Results, you can implement/extend existing one instead of defining new 
ObjectFactory</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.ActionProxyFactory</td><td colspan="1" 
rowspan="1">struts.actionProxyFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creat
 es the ActionProxy</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.ObjectTypeDeterminer</td><td 
colspan="1" rowspan="1">struts.objectTypeDeterminer</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Determines what the key 
and element class of a Map or Collection should be</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.dispatcher.mapper.ActionMapper</td><td 
colspan="1" rowspan="1">struts.mapper.class</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Determines the 
ActionMapping from a request and a URI from an ActionMapping</td></tr><tr><td 
colspan="1" 
rowspan="1">org.apache.struts2.dispatcher.multipart.MultiPartRequest</td><td 
colspan="1" rowspan="1">struts.multipart.parser</td><td colspan="1" 
rowspan="1">per request</td><td colspan="1" rowspan="1">Parses a multipart 
request (file upload)</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.freemarker.FreemarkerManager</td><td 
colspan="1"
  rowspan="1">struts.freemarker.manager.classname</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Loads and processes 
Freemarker templates</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.velocity.VelocityManager</td><td 
colspan="1" rowspan="1">struts.velocity.manager.classname</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Loads and processes 
Velocity templates</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.validator.ActionValidatorManager</td><td 
colspan="1" rowspan="1">struts.actionValidatorManager</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Main interface for 
validation managers (regular and annotation based).  Handles both the loading of
         configuration and the actual validation (since 2.1)</td></tr><tr><td 
colspan="1" rowspan="1">com.opensymphony.xwork2.util.ValueStackFactory</td><td 
colspan="1" rowspan="1">struts.valueStackFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates value stacks 
(since 2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.reflection.ReflectionProvider</td><td 
colspan="1" rowspan="1">struts.reflectionProvider</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Provides reflection 
services, key place to plug in a custom expression language (since 
2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.reflection.ReflectionContextFactory</td><td 
colspan="1" rowspan="1">struts.reflectionContextFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates reflection 
context maps used for reflection and expression language operations (since 
2.1)</td></tr><tr><td colspan="1"
  rowspan="1">com.opensymphony.xwork2.config.PackageProvider</td><td 
colspan="1" rowspan="1">N/A</td><td colspan="1" rowspan="1">singleton</td><td 
colspan="1" rowspan="1">All beans registered as PackageProvider implementations 
will be automatically included in configuration building (since 
2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.PatternMatcher</td><td colspan="1" 
rowspan="1">struts.patternMatcher</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Matches patterns, such as 
action names, generally used in configuration (since 2.1)</td></tr><tr><td 
colspan="1" 
rowspan="1">org.apache.struts2.views.dispatcher.DefaultStaticContentLoader</td><td
 colspan="1" rowspan="1">struts.staticContentLoader</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Loads static resources 
(since 2.1)</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.XWorkConverter</td><td 
colspan="1" rowspan="1">strut
 s.xworkConverter</td><td colspan="1" rowspan="1">singleton</td><td colspan="1" 
rowspan="1">Handles conversion logic and allows to load custom converters per 
class or per action</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.TextProvider</td><td colspan="1" 
rowspan="1">struts.xworkTextProvider</td><td colspan="1" 
rowspan="1">default</td><td colspan="1" rowspan="1">Allows provide custom 
TextProvider for whole application</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.LocaleProvider</td><td colspan="1" 
rowspan="1">struts.localeProvider</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Allows provide custom 
TextProvider for whole application</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.components.UrlRenderer</td><td colspan="1" 
rowspan="1">struts.urlRenderer</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Allows provide custom 
implementation of environment specific URL rendering/creating
  class</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.UnknownHandlerManager</td><td colspan="1" 
rowspan="1">struts.unknownHandlerManager</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Implementation of this 
interface allows handle logic of unknown Actions, Methods or 
Results</td></tr><tr><td colspan="1" 
rowspan="1">org.apache.struts2.views.util.UrlHelper</td><td colspan="1" 
rowspan="1">struts.view.urlHelper</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Helper class used with 
URLRenderer to provide exact logic for building URLs</td></tr><tr><td 
colspan="1" rowspan="1">com.opensymphony.xwork2.FileManagerFactory</td><td 
colspan="1" rowspan="1">struts.fileManagerFactory</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Used to create 
FileManager instance to access files on the File System as also to monitor if 
reload is needed,
     can be implemented / overwritten to meet specific an application server 
needs
     </td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.CollectionConverter</td><td 
colspan="1" rowspan="1">struts.converter.collection</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Collection and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.ArrayConverter</td><td 
colspan="1" rowspan="1">struts.converter.array</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Array and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.DateConverter</td><td 
colspan="1" rowspan="1">struts.converter.date</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to Date and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.NumberConverter</td><td 
colspan="1" rowspan="1">struts.conv
 erter.number</td><td colspan="1" rowspan="1">singleton</td><td colspan="1" 
rowspan="1">Converter used to convert any object to Number and 
back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.impl.StringConverter</td><td 
colspan="1" rowspan="1">struts.converter.string</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Converter used to convert 
any object to String and back</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td><td
 colspan="1" rowspan="1">struts.conversion.properties.processor</td><td 
colspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
Properties to create converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor</td><td
 colspan="1" rowspan="1">struts.converter.file.processor</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
<class>-conversion.propertie
 s file create converters</class></td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor</td><td
 colspan="1" rowspan="1">struts.converter.annotation.processor</td><td 
colspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">Process 
TypeConversion annotation to create converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.TypeConverterCreator</td><td 
colspan="1" rowspan="1">struts.converter.creator</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Creates user 
converters</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.conversion.TypeConverterHolder</td><td 
colspan="1" rowspan="1">struts.converter.holder</td><td colspan="1" 
rowspan="1">singleton</td><td colspan="1" rowspan="1">Holds user converters' 
instances</td></tr><tr><td colspan="1" 
rowspan="1">com.opensymphony.xwork2.util.TextParser</td><td colspan="1" 
rowspan="1">struts.expression.parser</td><td co
 lspan="1" rowspan="1">singleton</td><td colspan="1" rowspan="1">Used to parse 
expressions like ${foo.bar} or %{bar.foo} but it is up tp the TextParser's

Modified: 
websites/production/struts/content/development/2.x/docs/result-types.html
==============================================================================
--- websites/production/struts/content/development/2.x/docs/result-types.html 
(original)
+++ websites/production/struts/content/development/2.x/docs/result-types.html 
Tue Jul 30 09:36:06 2013
@@ -175,6 +175,26 @@ under the License. 
 
 <p>All Result Types are plugged in via the <a shape="rect" 
href="result-configuration.html" title="Result Configuration">Result 
Configuration</a>.</p>
 
+<h3><a shape="rect" name="ResultTypes-Extending"></a>Extending</h3>
+
+<p>You can always extend defined result types and implement whatever logic you 
need. To simplify process of that, you can define you custom 
<tt>ResultBuilder</tt> and use it with connection with custom interface which 
your Result implements. Check <a shape="rect" 
href="objectfactory.html#ObjectFactory-DefineDedicatedBuilder">Define dedicated 
builder</a> to see how to do it.</p>
+
+<p>Struts 2 provides one such extension for you: <tt>ParamNameAwareResult</tt> 
interface when used with <tt>StrutsResultBuilder</tt> can limit parameters 
assigned to the result. So you can simple extend existing result with such a 
functionality as below:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+public class MyResult extends ServletDispatcherResult implements 
ParamNameAwareResult {
+
+    public boolean acceptParamName(String name, String value) {
+        return "accept".equals(name);
+    }
+
+}
+]]></script>
+</div></div>
+
+<p>and then register it and use instead of default <tt>dispatcher</tt> 
result.</p>
+
 <h2><a shape="rect" name="ResultTypes-Next%3ADispatcherListener"></a>Next: <a 
shape="rect" href="dispatcherlistener.html" 
title="DispatcherListener">DispatcherListener</a></h2></div>
         </div>
 

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 Jul 30 09:36:06 2013
@@ -38,6 +38,7 @@ under the License. 
     <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;
@@ -148,7 +149,7 @@ under the License. 
 <p>In the example application's thankyou.jsp is this markup.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;s:if test="personBean.over21"&gt;
 
@@ -172,7 +173,7 @@ under the License. 
 <p>The value of the test attribute must be an expression that evaluates to 
true or false, but doesn't need to be a method call that returns a boolean.  
For example this s:if tag that is in thankyou.jsp has a more complicated 
expression.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;s:if test="personBean.carModels.length &gt; 1"&gt;
 
@@ -199,7 +200,7 @@ under the License. 
 <p>The Struts iterator tag is used to generate a loop that iterates over each 
item in a collection.  In the thankyou.jsp is this markup.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;table style="margin-left:15px"&gt;
        
@@ -208,8 +209,7 @@ under the License. 
                &lt;tr&gt;&lt;td&gt;&lt;s:property /&gt;&lt;/td&gt;&lt;/tr&gt;
 
        &lt;/s:iterator&gt;
-       
-       
+               
 &lt;/table&gt;
 
 
@@ -226,7 +226,7 @@ under the License. 
 
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;table style="margin-left:15px"&gt;
 

Modified: 
websites/production/struts/content/development/2.x/docs/struts-defaultxml.html
==============================================================================
--- 
websites/production/struts/content/development/2.x/docs/struts-defaultxml.html 
(original)
+++ 
websites/production/struts/content/development/2.x/docs/struts-defaultxml.html 
Tue Jul 30 09:36:06 2013
@@ -172,6 +172,8 @@ under the License. 
 &lt;struts&gt;
     &lt;bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" /&gt;
     &lt;bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" 
class="org.apache.struts2.impl.StrutsObjectFactory" /&gt;
+    &lt;bean type="com.opensymphony.xwork2.factory.ResultFactory" name="xwork" 
class="org.apache.struts2.factory.StrutsResultFactory" /&gt;
+    &lt;bean type="com.opensymphony.xwork2.factory.ResultFactory" 
name="struts" class="org.apache.struts2.factory.StrutsResultFactory" /&gt;
 
     &lt;bean type="com.opensymphony.xwork2.FileManager" 
class="com.opensymphony.xwork2.util.fs.DefaultFileManager" name="system" 
scope="singleton"/&gt;
 

Modified: 
websites/production/struts/content/development/2.x/docs/strutsxml-examples.html
==============================================================================
--- 
websites/production/struts/content/development/2.x/docs/strutsxml-examples.html 
(original)
+++ 
websites/production/struts/content/development/2.x/docs/strutsxml-examples.html 
Tue Jul 30 09:36:06 2013
@@ -151,20 +151,23 @@ under the License. 
 
 <h2><a shape="rect" 
name="struts.xmlExamples-TheStruts2DocumentTypeDefinition%28DTD%29"></a>The 
Struts 2 Document Type Definition (DTD)</h2>
 
-<div class="panel" style="border-width: 1px;"><div class="panelHeader" 
style="border-bottom-width: 1px;"><b>Struts 2.0 DTD</b></div><div 
class="panelContent">
+<div class="panel" style="border-width: 1px;"><div class="panelHeader" 
style="border-bottom-width: 1px;"><b>Struts 2.3 DTD</b></div><div 
class="panelContent">
 <div class="code panel" style="border-width: 1px;"><div class="codeContent 
panelContent">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!--
    Struts configuration DTD.
    Use the following DOCTYPE
-   
-   &lt;!DOCTYPE struts PUBLIC 
-       "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-       "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;
+
+   &lt;!DOCTYPE struts PUBLIC
+       "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
+       "http://struts.apache.org/dtds/struts-2.3.dtd"&gt;
 --&gt;
 
-&lt;!ELEMENT struts (package|include|bean|constant)*&gt;
+&lt;!ELEMENT struts ((package|include|bean|constant)*, 
unknown-handler-stack?)&gt;
+&lt;!ATTLIST struts
+    order CDATA #IMPLIED
+&gt;
 
 &lt;!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, 
default-action-ref?, default-class-ref?, global-results?, 
global-exception-mappings?, action*)&gt;
 &lt;!ATTLIST package
@@ -172,6 +175,7 @@ under the License. 
     extends CDATA #IMPLIED
     namespace CDATA #IMPLIED
     abstract CDATA #IMPLIED
+    strict-method-invocation CDATA #IMPLIED
     externalReferenceResolver NMTOKEN #IMPLIED
 &gt;
 
@@ -221,7 +225,7 @@ under the License. 
 
 &lt;!ELEMENT global-exception-mappings (exception-mapping+)&gt;
 
-&lt;!ELEMENT action (param|result|interceptor-ref|exception-mapping)*&gt;
+&lt;!ELEMENT action 
((param|result|interceptor-ref|exception-mapping)*,allowed-methods?)&gt;
 &lt;!ATTLIST action
     name CDATA #REQUIRED
     class CDATA #IMPLIED
@@ -247,6 +251,8 @@ under the License. 
     result CDATA #REQUIRED
 &gt;
 
+&lt;!ELEMENT allowed-methods (#PCDATA)&gt;
+
 &lt;!ELEMENT include (#PCDATA)&gt;
 &lt;!ATTLIST include
     file CDATA #REQUIRED
@@ -265,7 +271,13 @@ under the License. 
 &lt;!ELEMENT constant (#PCDATA)&gt;
 &lt;!ATTLIST constant
     name CDATA #REQUIRED
-    value CDATA #REQUIRED    
+    value CDATA #REQUIRED
+&gt;
+
+&lt;!ELEMENT unknown-handler-stack (unknown-handler-ref*)&gt;
+&lt;!ELEMENT unknown-handler-ref (#PCDATA)&gt;
+&lt;!ATTLIST unknown-handler-ref
+    name CDATA #REQUIRED
 &gt;
 
 ]]></script>

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 Jul 30 09:36:06 2013
@@ -178,7 +178,7 @@ If you want to actually read the Struts 
 <p>Examine the struts.xml configuration in the Hello World tutorial and you 
will find this:</p>
 
 <div class="code panel" style="border-style: solid;border-width: 1px;"><div 
class="codeHeader panelHeader" style="border-bottom-width: 
1px;border-bottom-style: solid;"><b>struts.xml</b></div><div class="codeContent 
panelContent">
-<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 ...
 &lt;action name="hello" 
class="org.apache.struts.helloworld.action.HelloWorldAction" 
method="execute"&gt;
   &lt;result name="success"&gt;/HelloWorld.jsp&lt;/result&gt;


Reply via email to