Modified: websites/production/struts/content/docs/version-notes-25.html
==============================================================================
--- websites/production/struts/content/docs/version-notes-25.html (original)
+++ websites/production/struts/content/docs/version-notes-25.html Wed Jan 27
09:26:50 2016
@@ -155,7 +155,7 @@ under the License.
<url>https://repository.apache.org/content/groups/staging/</url>
</repository>
</repositories></pre>
-</div></div><h2 id="VersionNotes2.5-InternalChanges">Internal
Changes</h2><ul><li>XWork source was merged into Struts Core source, it means
that there be no more <code>xwork</code> artifact nor dedicated
jar</li><li>OGNL was upgraded to version 3.0.11 and it breaks access to
properties as it follows Java Bean Specification, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4207">WW-4207</a> and <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-3909">WW-3909</a></li><li>Spring
dependency for tests and spring plugin was upgraded to version 4.1.6, see
<a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4510">WW-4510</a>.</li><li>Struts2
internal logging api was marked as deprecated and was replaced with
new <a shape="rect" class="external-link"
href="http://logging.apache.org/log4j/2.x/">Log4j2</a> api as logging
layer, see <a shape="rect" class="exte
rnal-link"
href="https://issues.apache.org/jira/browse/WW-4504">WW-4504</a>.</li><li>Struts2
is now build with JDK7, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4503">WW-4503</a>.</li><li>New
plugin to support <a shape="rect"
href="https://cwiki.apache.org/confluence/display/WW/Bean+Validation+Plugin">bean
validation</a> is now part of the distribution, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4505">WW-4505</a>.</li><li>Deprecated
plugins are now removed from the distribution and are not longer supported
anymore.<ul><li>Dojo Plugin</li><li>Codebehind Plugin</li><li>JSF
Plugin</li><li>Struts1 Plugin</li></ul></li><li>New security option was added -
Strict Method Invocation (also known as Strict DMI), see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4540">WW-4540</a></li><li>Add
support for latest stable AngularJS in Maven archetype, see <a shape="r
ect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4522">WW-4522</a></li></ul><h2
id="VersionNotes2.5-IssueDetail"><span style="font-size: 16.0px;line-height:
1.5625;">Issue Detail</span></h2><ul><li><a shape="rect" class="external-link"
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12331974&projectId=12311041">JIRA
Release Notes 2.3.24</a> - TBU</li></ul><h3
id="VersionNotes2.5-IssueList">Issue List</h3><ul><li><a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/issues/?filter=12330045">Struts 2.3.24
DONE</a> - TBU</li><li><a shape="rect" class="external-link"
href="https://issues.apache.org/jira/issues/?filter=12318399">Struts 2.3.x
TODO</a> - TBU</li></ul><h3 id="VersionNotes2.5-Otherresources">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</a></li><li><a shape="rect" class="external-l
ink"
href="https://git-wip-us.apache.org/repos/asf?p=struts.git;a=tree;h=refs/heads/develop;hb=develop">Source
Code Repository</a></li></ul><div><span style="font-size: 24.0px;line-height:
30.0px;"><br clear="none"></span></div><div><span style="font-size:
24.0px;line-height: 30.0px;background-color: rgb(245,245,245);"><br
clear="none"></span></div></div>
+</div></div><h2 id="VersionNotes2.5-InternalChanges">Internal
Changes</h2><ul><li>XWork source was merged into Struts Core source, it means
that there be no more <code>xwork</code> artifact nor dedicated
jar</li><li><span style="line-height: 1.42857;">Spring dependency for tests and
spring plugin was upgraded to version 4.1.6, see </span><a shape="rect"
class="external-link" href="https://issues.apache.org/jira/browse/WW-4510"
style="line-height: 1.42857;">WW-4510</a><span style="line-height:
1.42857;">.</span></li><li>Struts2 internal logging api was marked as
deprecated and was replaced with new <a shape="rect" class="external-link"
href="http://logging.apache.org/log4j/2.x/">Log4j2</a> api as logging
layer, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4504">WW-4504</a>.</li><li>Struts2
is now build with JDK7, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4503">WW-4503</a>.</
li><li>New plugin to support <a shape="rect"
href="https://cwiki.apache.org/confluence/display/WW/Bean+Validation+Plugin">bean
validation</a> is now part of the distribution, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4505">WW-4505</a>.</li><li>Deprecated
plugins are now removed from the distribution and are not longer supported
anymore.<ul><li>Dojo Plugin</li><li>Codebehind Plugin</li><li>JSF
Plugin</li><li>Struts1 Plugin</li></ul></li><li>New security option was added -
Strict Method Invocation (also known as Strict DMI), see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4540">WW-4540</a></li><li>Added
support for latest stable AngularJS in Maven archetype, see <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4522">WW-4522</a></li><li>Dropped
support for <code>id</code> and <code>name</code> - replaced
with <code>var</code>, see <a shape
="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-2069">WW-2069</a></li><li>Dedicated
archive with a minimal set of dependencies was introduced, see <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4570">WW-4570</a></li><li>It is
possible to use multiple names when defining a result, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4590">WW-4590</a></li><li>Rest
plugin honors Accept header, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4588">WW-4588</a></li><li><p>New
result 'JSONActionRedirectResult' in json-plugin was defined, see <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4591">WW-4591</a></p></li><li>Tiles
plugin was upgrade to the latest Tiles 3 and tiles3-plugin was dropped,
see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4584"
>WW-4584</a></li><li>JasperReports plugins was upgraded to JasperReport 6.0,
>see <a shape="rect" class="external-link"
>href="https://issues.apache.org/jira/browse/WW-4381">WW-4381</a></li><li>OGNL
>was upgraded to version 3.0.11 and it breaks access to properties as it
>follows Java Bean Specification, see <a shape="rect"
>class="external-link"
>href="https://issues.apache.org/jira/browse/WW-4207">WW-4207</a> and <a
> shape="rect" class="external-link"
>href="https://issues.apache.org/jira/browse/WW-3909">WW-3909</a><ul><li>and
>then OGNL was upgraded to version 3.1.1, see <a shape="rect"
>class="external-link"
>href="https://issues.apache.org/jira/browse/WW-4561">WW-4561</a></li><li>and
>then OGNL was upgraded to version 3.2.1, see <a shape="rect"
>class="external-link"
>href="https://issues.apache.org/jira/browse/WW-4577">WW-4577</a></li></ul></li></ul><h2
> id="VersionNotes2.5-IssueDetail"><span style="font-size: 16.0px;line-height:
>1.5625;">Issue Detail</span></h2
><ul><li><a shape="rect" class="external-link"
>href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12331974&projectId=12311041">JIRA
> Release Notes 2.3.24</a> - TBU</li></ul><h3
>id="VersionNotes2.5-IssueList">Issue List</h3><ul><li><a shape="rect"
>class="external-link"
>href="https://issues.apache.org/jira/issues/?filter=12330045">Struts 2.3.24
>DONE</a> - TBU</li><li><a shape="rect" class="external-link"
>href="https://issues.apache.org/jira/issues/?filter=12318399">Struts 2.3.x
>TODO</a> - TBU</li></ul><h3 id="VersionNotes2.5-Otherresources">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</a></li><li><a shape="rect" class="external-link"
>href="https://git-wip-us.apache.org/repos/asf?p=struts.git;a=tree;h=refs/heads/develop;hb=develop">Source
> Code Repository</a></li></ul><div><span style="font-size:
>24.0px;line-height: 30.0px;"><br clear="none"
></span></div><div><span style="font-size: 24.0px;line-height:
>30.0px;background-color: rgb(245,245,245);"><br
>clear="none"></span></div></div>
</div>
Modified: websites/production/struts/content/docs/webxml.html
==============================================================================
--- websites/production/struts/content/docs/webxml.html (original)
+++ websites/production/struts/content/docs/webxml.html Wed Jan 27 09:26:50 2016
@@ -146,7 +146,7 @@ under the License.
<filter>
<filter-name>struts2</filter-name>
-
<filter-class>org.apache.struts2.dispatcher.filter.ng.StrutsPrepareAndExecuteFilter</filter-class>
+
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
@@ -195,7 +195,7 @@ under the License.
</div></div><h2
id="web.xml-CustomFileManagerandFileManagerFactoryimplementations">Custom
FileManager and FileManagerFactory implementations</h2><p>If there is a need to
support an App Server's specific file system (eg. VFS in JBoss), you can
implement your own version of FileManager. But it must be registered at "the
beginning" to support bootstrap of the whole framework.</p><p>To register your
own FileManger you can do it with <init-param/> as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><filter>
<filter-name>struts2</filter-name>
-
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
+
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.fileManager</param-name>
<param-value>com.company.MyFileManager</param-value>
@@ -205,7 +205,7 @@ under the License.
</div></div><p>You can as well register your own FileManagerFactory with
<init-param/>, see example:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><filter>
<filter-name>struts2</filter-name>
-
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
+
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.fileManagerFactory</param-name>
<param-value>com.company.MyFileManagerFactory</param-value>
Modified: websites/production/struts/content/docs/wildcard-method-selection.html
==============================================================================
--- websites/production/struts/content/docs/wildcard-method-selection.html
(original)
+++ websites/production/struts/content/docs/wildcard-method-selection.html Wed
Jan 27 09:26:50 2016
@@ -157,7 +157,7 @@ under the License.
</action>
</pre>
-</div></div><p>The * is the wildcard character. Any action name values that
end in "Person" will be handled by this action mapping. Whatever value is
before "Person" will be the value used for the method attribute (the {1} place
holder will be replaced with that value). For example this URL:</p><p><a
shape="rect" class="external-link"
href="http://localhost:8080/wildcard_method_selection/createPerson.action"
rel="nofollow">http://localhost:8080/wildcard_method_selection/createPerson.action</a></p><p>will
be be processed by the the above action mapping and method create of class
PersonAction will be called. While this URL</p><p><a shape="rect"
class="external-link"
href="http://localhost:8080/wildcard_method_selection/deletePerson.action"
rel="nofollow">http://localhost:8080/wildcard_method_selection/deletePerson.action</a></p><p>will
cause the delete method of class PersonAction to be called.</p><p>What happens
if we have a URL with nothing in front of Person? For example:</p><p><a
shape="rect" class="external-link"
href="http://localhost:8080/wildcard_method_selection/Person.action"
rel="nofollow">http://localhost:8080/wildcard_method_selection/Person.action</a></p><p>If
there is no value in front of Person, then the Struts 2 framework will call
the execute method of the class PersonAction.</p><h3
id="WildcardMethodSelection-DynamicMethodInvocation">Dynamic Method
Invocation</h3><p>The wildcard method selection technique explained above
should not be confused with the "Dynamic Method Invocation" technique. The
Struts 2 documentation explains this technique (which uses the bang, !,
operator in the action name) and recommends against using the "Dynamic Method
Invocation" technique due to security and other reasons related to how this
technique is implemented internally.</p><p>The Struts 2 documentation also
recommends turning off the option to use the dynamic method invocation by
setting struts.enable.DynamicMethodInvocation to FALSE in the Struts
configuration
.</p><h3 id="WildcardMethodSelection-Summary">Summary</h3><p>By using the
wildcard method selection technique explained above, you can significantly
reduce the number of action mapping nodes you need to write and manage in the
Struts 2 XML configuration file.</p><h3 id="WildcardMethodSelection-UpNext">Up
Next</h3><p>In our next tutorial we'll cover how control the appearance of the
Struts 2 tags when they are rendered in the browser.</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Next</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Onward to <a shape="rect"
href="struts-2-themes.html">Struts 2
Themes</a></p></td></tr></tbody></table></div></div>
+</div></div><p>The * is the wildcard character. Any action name values that
end in "Person" will be handled by this action mapping. Whatever value is
before "Person" will be the value used for the method attribute (the {1} place
holder will be replaced with that value). For example this URL:</p><p><a
shape="rect" class="external-link"
href="http://localhost:8080/wildcard-method-selection/createPerson.action"
rel="nofollow">http://localhost:8080/wildcard-method-selection/createPerson.action</a></p><p>will
be be processed by the the above action mapping and method create of class
PersonAction will be called. While this URL</p><p><a shape="rect"
class="external-link"
href="http://localhost:8080/wildcard-method-selection/deletePerson.action"
rel="nofollow">http://localhost:8080/wildcard-method-selection/deletePerson.action</a></p><p>will
cause the delete method of class PersonAction to be called.</p><p>What happens
if we have a URL with nothing in front of Person? For example:</p><p><a
shape="rect" class="external-link"
href="http://localhost:8080/wildcard-method-selection/Person.action"
rel="nofollow">http://localhost:8080/wildcard-method-selection/Person.action</a></p><p>If
there is no value in front of Person, then the Struts 2 framework will call
the execute method of the class PersonAction.</p><h3
id="WildcardMethodSelection-DynamicMethodInvocation">Dynamic Method
Invocation</h3><p>The wildcard method selection technique explained above
should not be confused with the "Dynamic Method Invocation" technique. The
Struts 2 documentation explains this technique (which uses the bang, !,
operator in the action name) and recommends against using the "Dynamic Method
Invocation" technique due to security and other reasons related to how this
technique is implemented internally.</p><p>The Struts 2 documentation also
recommends turning off the option to use the dynamic method invocation by
setting struts.enable.DynamicMethodInvocation to FALSE in the Struts
configuration
.</p><h3 id="WildcardMethodSelection-Summary">Summary</h3><p>By using the
wildcard method selection technique explained above, you can significantly
reduce the number of action mapping nodes you need to write and manage in the
Struts 2 XML configuration file.</p><h3 id="WildcardMethodSelection-UpNext">Up
Next</h3><p>In our next tutorial we'll cover how control the appearance of the
Struts 2 tags when they are rendered in the browser.</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Next</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Onward to <a shape="rect"
href="struts-2-themes.html">Struts 2
Themes</a></p></td></tr></tbody></table></div></div>
</div>
Modified: websites/production/struts/content/docs/xhtml-form-template.html
==============================================================================
--- websites/production/struts/content/docs/xhtml-form-template.html (original)
+++ websites/production/struts/content/docs/xhtml-form-template.html Wed Jan 27
09:26:50 2016
@@ -166,8 +166,8 @@ under the License.
-->
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-validate.ftl"
/>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl"
/>
-<#if (parameters.validate?default(false))>
-
onreset="${parameters.onreset?default('clearErrorMessages(this);clearErrorLabels(this);')}"
+<#if (parameters.validate!false)>
+
onreset="${parameters.onreset!'clearErrorMessages(this);clearErrorLabels(this);'}"
<#else>
<#if parameters.onreset??>
onreset="${parameters.onreset?html}"
@@ -207,7 +207,7 @@ under the License.
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/control-close.ftl"
/>
<#include "/${parameters.templateDir}/simple/form-close.ftl" />
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl"
/>
-<#if parameters.focusElement?if_exists != "">
+<#if parameters.focusElement??>
<script type="text/javascript">
StrutsUtils.addOnLoad(function() {
var element =
document.getElementById("${parameters.focusElement?html}");
Modified: websites/production/struts/content/docs/xhtml-theme.html
==============================================================================
--- websites/production/struts/content/docs/xhtml-theme.html (original)
+++ websites/production/struts/content/docs/xhtml-theme.html Wed Jan 27
09:26:50 2016
@@ -238,7 +238,7 @@ under the License.
This will be done if ActionSupport is used.
-->
<#assign hasFieldErrors = parameters.name?? && fieldErrors??
&& fieldErrors[parameters.name]??/>
-<#if parameters.errorposition?default("top") == 'top'>
+<#if (parameters.errorposition!"top") == 'top'>
<#if hasFieldErrors>
<#list fieldErrors[parameters.name] as error>
<tr errorFor="${parameters.id}">
@@ -259,7 +259,7 @@ under the License.
then give the label it's own row in the table
-->
<tr>
-<#if labelpos?default("") == 'top'>
+<#if (labelpos!"") == 'top'>
<td class="tdLabelTop" colspan="2"><#rt/>
<#else>
<td class="tdLabel"><#rt/>
@@ -275,20 +275,20 @@ under the License.
class="label"<#t/>
</#if>
><#t/>
-<#if parameters.required?default(false) &&
parameters.requiredPosition?default("right") != 'right'>
+<#if parameters.required!false &&
parameters.requiredPosition!"right" != 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
-<#if parameters.required?default(false) &&
parameters.requiredPosition?default("right") == 'right'>
+<#if parameters.required!false &&
parameters.requiredPosition!"right" == 'right'>
<span class="required">*</span><#t/>
</#if>
-${parameters.labelseparator?default(":")?html}<#t/>
+${parameters.labelseparator!":"?html}<#t/>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl"
/>
</label><#t/>
</#if>
</td><#lt/>
<#-- add the extra row -->
-<#if labelpos?default("") == 'top'>
+<#if (labelpos!"") == 'top'>
</tr>
<tr>
</#if>
@@ -325,10 +325,10 @@ ${parameters.labelseparator?default(&quo
* under the License.
*/
-->
-${parameters.after?if_exists}<#t/>
+${parameters.after!}<#t/>
</td><#lt/>
</tr>
-<#if parameters.errorposition?default("top") ==
'bottom'>
+<#if (parameters.errorposition!"top") == 'bottom'>
<#assign hasFieldErrors = parameters.name?? && fieldErrors??
&& fieldErrors[parameters.name]??/>
<#if hasFieldErrors>
<#list fieldErrors[parameters.name] as error>
@@ -452,8 +452,8 @@ ${parameters.after?if_exists}<#t/>
-->
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-validate.ftl"
/>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl"
/>
-<#if (parameters.validate?default(false))>
-
onreset="${parameters.onreset?default('clearErrorMessages(this);clearErrorLabels(this);')}"
+<#if (parameters.validate!false)>
+
onreset="${parameters.onreset!'clearErrorMessages(this);clearErrorLabels(this);'}"
<#else>
<#if parameters.onreset??>
onreset="${parameters.onreset?html}"
@@ -491,7 +491,7 @@ ${parameters.after?if_exists}<#t/>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/control-close.ftl"
/>
<#include "/${parameters.templateDir}/simple/form-close.ftl" />
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl"
/>
-<#if parameters.focusElement?if_exists != "">
+<#if parameters.focusElement??>
<script type="text/javascript">
StrutsUtils.addOnLoad(function() {
var element =
document.getElementById("${parameters.focusElement?html}");