This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 53d204341 Updates stage by Jenkins
53d204341 is described below
commit 53d204341e8f72adf814a9250828171de6aa64f3
Author: jenkins <[email protected]>
AuthorDate: Thu May 29 05:28:59 2025 +0000
Updates stage by Jenkins
---
.../ajax-client-side-validation.html | 58 +++++++++++-----------
content/getting-started/themes.html | 6 +--
content/plugins/json/json-ajax-validation.html | 58 +++++++++++-----------
content/tag-developers/ajax-theme.html | 10 ++--
content/tag-developers/extending-themes.html | 18 ++++---
content/tag-developers/form-tags.html | 8 +--
content/tag-developers/freemarker-tags.html | 16 +++---
content/tag-developers/freemarker.html | 6 +--
content/tag-developers/xhtml-theme.html | 2 +-
9 files changed, 95 insertions(+), 87 deletions(-)
diff --git a/content/core-developers/ajax-client-side-validation.html
b/content/core-developers/ajax-client-side-validation.html
index 6d69eae62..0ecf78c2b 100644
--- a/content/core-developers/ajax-client-side-validation.html
+++ b/content/core-developers/ajax-client-side-validation.html
@@ -381,22 +381,22 @@ but as usual request, not AJAX.</p>
</span>Make sure element is always present. To be filled later via
JS.<span class="w">
</span><span class="err">--></span><span class="w">
</span><span class="err"><</span><span class="no">ul</span><span
class="err"><#</span><span class="no">rt</span><span
class="err">/></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.id??><span class="w">
- </span>id="$<span class="p">{</span><span class="no">parameters</span><span
class="na">.id</span><span class="err">?</span><span
class="no">html</span><span class="p">}</span>"<#rt/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.id??><span class="w">
+ </span>id="$<span class="p">{</span><span class="no">attributes</span><span
class="na">.id</span><span class="err">?</span><span
class="no">html</span><span class="p">}</span>"<#rt/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.cssClass??><span class="w">
- </span>class="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.cssClass</span><span
class="err">?</span><span class="no">html</span><span
class="p">}</span>"<#rt/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.cssClass??><span class="w">
+ </span>class="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.cssClass</span><span
class="err">?</span><span class="no">html</span><span
class="p">}</span>"<#rt/><span class="w">
</span><span class="err"><#</span><span class="no">else</span><span
class="err">></span><span class="w">
</span>class="errorMessage"<#rt/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.cssStyle??><span class="w">
- </span>style="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.cssStyle</span><span
class="err">?</span><span class="no">html</span><span
class="p">}</span>"<#rt/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.cssStyle??><span class="w">
+ </span>style="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.cssStyle</span><span
class="err">?</span><span class="no">html</span><span
class="p">}</span>"<#rt/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span><span class="err">></span><span class="w">
</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>(actionErrors?? && actionErrors?size > 0)><span
class="w">
</span><#list actionErrors as error><span class="w">
</span><#if error??><span class="w">
- </span><li><span><#if parameters.escape>$<span
class="p">{</span><span class="no">error</span><span class="err">!?</span><span
class="no">html</span><span class="p">}</span><#else>$<span
class="p">{</span><span class="no">error</span><span class="err">!</span><span
class="p">}</span></#if></span><#rt/></li><#rt/><span
class="w">
+ </span><li><span><#if attributes.escape>$<span
class="p">{</span><span class="no">error</span><span class="err">!?</span><span
class="no">html</span><span class="p">}</span><#else>$<span
class="p">{</span><span class="no">error</span><span class="err">!</span><span
class="p">}</span></#if></span><#rt/></li><#rt/><span
class="w">
</span></#if><span class="w">
</span></#list><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
@@ -405,16 +405,16 @@ but as usual request, not AJAX.</p>
<p><strong>controlfooter.ftl</strong></p>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err">${</span><span
class="no">parameters</span><span class="na">.after</span><span
class="err">!}<#</span><span class="no">t</span><span
class="err">/></span><span class="w">
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err">${</span><span
class="no">attributes</span><span class="na">.after</span><span
class="err">!}<#</span><span class="no">t</span><span
class="err">/></span><span class="w">
</span></td><#lt/><span class="w">
</span><span class="err"></</span><span class="no">tr</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>(parameters.errorposition!"top") == 'bottom'><span
class="w">
-</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>hasFieldErrors = parameters.name?? && fieldErrors??
&& fieldErrors[parameters.name]??/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>(attributes.errorposition!"top") == 'bottom'><span
class="w">
+</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>hasFieldErrors = attributes.name?? && fieldErrors??
&& fieldErrors[attributes.name]??/><span class="w">
</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>hasFieldErrors><span class="w">
-</span><span class="err"><</span><span class="no">tr</span><span class="w">
</span>errorFor="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.id</span><span
class="p">}</span>"><span class="w">
+</span><span class="err"><</span><span class="no">tr</span><span class="w">
</span>errorFor="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.id</span><span
class="p">}</span>"><span class="w">
</span><td class="tdErrorMessage" colspan="2"><#rt/><span
class="w">
</span><#if hasFieldErrors><span class="w">
- </span><#list fieldErrors[parameters.name] as error><span
class="w">
+ </span><#list fieldErrors[attributes.name] as error><span
class="w">
</span><div class="errorMessage">$<span
class="p">{</span><span class="no">error</span><span class="err">?</span><span
class="no">html</span><span class="p">}</span></div><#t/><span
class="w">
</span></#list><span class="w">
</span></#if><span class="w">
@@ -429,22 +429,22 @@ but as usual request, not AJAX.</p>
<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#--</span><span class="w">
</span>Always include elements to show errors. They may be filled later
via AJAX.<span class="w">
</span><span class="err">--></span><span class="w">
-</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>hasFieldErrors = parameters.name?? && fieldErrors??
&& fieldErrors[parameters.name]??/><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>(parameters.errorposition!"top") == 'top'><span class="w">
-</span><span class="err"><</span><span class="no">tr</span><span class="w">
</span>errorFor="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.id</span><span
class="p">}</span>"><span class="w">
- </span><td class="tdErrorMessage" colspan="2"
data-error-for-fieldname="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.name</span><span
class="p">}</span>"><#rt/><span class="w">
+</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>hasFieldErrors = attributes.name?? && fieldErrors??
&& fieldErrors[attributes.name]??/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>(attributes.errorposition!"top") == 'top'><span class="w">
+</span><span class="err"><</span><span class="no">tr</span><span class="w">
</span>errorFor="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.id</span><span
class="p">}</span>"><span class="w">
+ </span><td class="tdErrorMessage" colspan="2"
data-error-for-fieldname="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.name</span><span
class="p">}</span>"><#rt/><span class="w">
</span><#if hasFieldErrors><span class="w">
- </span><#list fieldErrors[parameters.name] as error><span
class="w">
+ </span><#list fieldErrors[attributes.name] as error><span
class="w">
</span><div class="errorMessage">$<span
class="p">{</span><span class="no">error</span><span class="err">?</span><span
class="no">html</span><span class="p">}</span></div><#t/><span
class="w">
</span></#list><span class="w">
</span></#if><span class="w">
</span></td><#lt/><span class="w">
</span><span class="err"></</span><span class="no">tr</span><span
class="err">></span><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>!parameters.labelposition?? &&
(parameters.form.labelposition)??><span class="w">
-</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>labelpos = parameters.form.labelposition/><span class="w">
-</span><span class="err"><#</span><span class="no">elseif</span><span
class="w"> </span>parameters.labelposition??><span class="w">
-</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>labelpos = parameters.labelposition/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>!attributes.labelposition?? &&
(attributes.form.labelposition)??><span class="w">
+</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>labelpos = attributes.form.labelposition/><span class="w">
+</span><span class="err"><#</span><span class="no">elseif</span><span
class="w"> </span>attributes.labelposition??><span class="w">
+</span><span class="err"><#</span><span class="no">assign</span><span
class="w"> </span>labelpos = attributes.labelposition/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span><span class="err"><#--</span><span class="w">
</span>if the label position is top,<span class="w">
@@ -456,10 +456,10 @@ but as usual request, not AJAX.</p>
</span><span class="err"><#</span><span class="no">else</span><span
class="err">></span><span class="w">
</span><td class="tdLabel"><#rt/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.label??><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.label??><span class="w">
</span><label <#t/><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.id??><span class="w">
- </span>for="$<span class="p">{</span><span
class="no">parameters</span><span class="na">.id</span><span
class="err">?</span><span class="no">html</span><span class="p">}</span>"
<#t/><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.id??><span class="w">
+ </span>for="$<span class="p">{</span><span
class="no">attributes</span><span class="na">.id</span><span
class="err">?</span><span class="no">html</span><span class="p">}</span>"
<#t/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>hasFieldErrors><span class="w">
</span>class="errorLabel"<#t/><span class="w">
@@ -467,15 +467,15 @@ but as usual request, not AJAX.</p>
</span>class="label"<#t/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span>><#t/><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.required!false &&
parameters.requiredPosition!"right" != 'right'><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.required!false &&
attributes.requiredPosition!"right" != 'right'><span class="w">
</span><span class="required"><span
class="err">*</span></span><#t/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err">${</span><span class="no">parameters</span><span
class="na">.label</span><span class="err">?</span><span
class="no">html</span><span class="err">}<#</span><span
class="no">t</span><span class="err">/></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.required!false &&
parameters.requiredPosition!"right" == 'right'><span class="w">
+</span><span class="err">${</span><span class="no">attributes</span><span
class="na">.label</span><span class="err">?</span><span
class="no">html</span><span class="err">}<#</span><span
class="no">t</span><span class="err">/></span><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.required!false &&
attributes.requiredPosition!"right" == 'right'><span class="w">
</span><span class="required"><span
class="err">*</span></span><#t/><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err">${</span><span class="no">parameters</span><span
class="na">.labelseparator</span><span class="err">!":"?</span><span
class="no">html</span><span class="err">}<#</span><span
class="no">t</span><span class="err">/></span><span class="w">
-</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.expandTheme</span><span
class="p">}</span>/tooltip.ftl" /><span class="w">
+</span><span class="err">${</span><span class="no">attributes</span><span
class="na">.labelseparator</span><span class="err">!":"?</span><span
class="no">html</span><span class="err">}<#</span><span
class="no">t</span><span class="err">/></span><span class="w">
+</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.expandTheme</span><span
class="p">}</span>/tooltip.ftl" /><span class="w">
</span><span class="err"></</span><span class="no">label</span><span
class="err">><#</span><span class="no">t</span><span
class="err">/></span><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span></td><#lt/><span class="w">
diff --git a/content/getting-started/themes.html
b/content/getting-started/themes.html
index b746cd4c1..9c0488c58 100644
--- a/content/getting-started/themes.html
+++ b/content/getting-started/themes.html
@@ -303,11 +303,11 @@ the Struts 2 core jar.</p>
<p><strong>Modified checkboxlist.ftl</strong></p>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">include</span><span class="w"> </span>"/$<span
class="p">{</span><span class="no">parameters</span><span
class="na">.templateDir</span><span class="p">}</span>/$<span
class="p">{</span><span class="no">parameters</span><span
class="na">.expandTheme</span><span class="p">}</span>/controlheader.ftl"
/><span class="w">
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">include</span><span class="w"> </span>"/$<span
class="p">{</span><span class="no">attributes</span><span
class="na">.templateDir</span><span class="p">}</span>/$<span
class="p">{</span><span class="no">attributes</span><span
class="na">.expandTheme</span><span class="p">}</span>/controlheader.ftl"
/><span class="w">
-</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/KUTheme_simple/checkboxlist.ftl" /><span class="w">
+</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/KUTheme_simple/checkboxlist.ftl" /><span class="w">
-</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.expandTheme</span><span
class="p">}</span>/controlfooter.ftl" /><#nt/><span class="w">
+</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.expandTheme</span><span
class="p">}</span>/controlfooter.ftl" /><#nt/><span class="w">
</span></code></pre></div></div>
<p>Be sure to note the change to the second line—using KUTheme_simple in the
path.</p>
diff --git a/content/plugins/json/json-ajax-validation.html
b/content/plugins/json/json-ajax-validation.html
index 1e385b4ed..d016c6c1f 100644
--- a/content/plugins/json/json-ajax-validation.html
+++ b/content/plugins/json/json-ajax-validation.html
@@ -367,22 +367,22 @@ Otherwise the AJAX response will be empty and the form
must be submitted a 2nd t
<span class="na">Make</span> <span class="na">sure</span> <span
class="na">element</span> <span class="na">is</span> <span
class="na">always</span> <span class="na">present.</span> <span
class="na">To</span> <span class="na">be</span> <span class="na">filled</span>
<span class="na">later</span> <span class="na">via</span> <span
class="na">JS.</span>
<span class="na">--</span><span class="nt">></span>
<span class="nt"><ul</span><span class="err"><</span><span
class="na">#rt</span><span class="nt">/></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.id</span><span class="err">??</span><span
class="nt">></span>
- id="${parameters.id?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.id</span><span class="err">??</span><span
class="nt">></span>
+ id="${attributes.id?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.cssClass</span><span class="err">??</span><span
class="nt">></span>
- class="${parameters.cssClass?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.cssClass</span><span class="err">??</span><span
class="nt">></span>
+ class="${attributes.cssClass?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"><</span><span class="na">#else</span><span
class="nt">></span>
class="errorMessage"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.cssStyle</span><span class="err">??</span><span
class="nt">></span>
- style="${parameters.cssStyle?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.cssStyle</span><span class="err">??</span><span
class="nt">></span>
+ style="${attributes.cssStyle?html}"<span class="nt"><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
>
<span class="nt"><</span><span class="na">#if</span> <span
class="err">(</span><span class="na">actionErrors</span><span
class="err">??</span> <span class="err">&&</span> <span
class="na">actionErrors</span><span class="err">?</span><span
class="na">size</span> <span class="nt">></span> 0)>
<span class="nt"><</span><span class="na">#list</span> <span
class="na">actionErrors</span> <span class="na">as</span> <span
class="na">error</span><span class="nt">></span>
<span class="nt"><</span><span class="na">#if</span> <span
class="na">error</span><span class="err">??</span><span class="nt">></span>
- <span class="nt"><li><span><</span><span
class="na">#if</span> <span class="na">parameters.escape</span><span
class="nt">></span>${error!?html}<span class="nt"><</span><span
class="na">#else</span><span class="nt">></span>${error!}<span
class="nt"></</span><span class="err">#</span><span
class="nt">if></span><</span><span class="na">#rt</span><span
class="nt">/></li><</span><span class="na">#rt</span><span
class="nt">/></span>
+ <span class="nt"><li><span><</span><span
class="na">#if</span> <span class="na">attributes.escape</span><span
class="nt">></span>${error!?html}<span class="nt"><</span><span
class="na">#else</span><span class="nt">></span>${error!}<span
class="nt"></</span><span class="err">#</span><span
class="nt">if></span><</span><span class="na">#rt</span><span
class="nt">/></li><</span><span class="na">#rt</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">list></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
@@ -391,16 +391,16 @@ Otherwise the AJAX response will be empty and the form
must be submitted a 2nd t
<h4 id="controlfooterftl">controlfooter.ftl</h4>
-<div class="language-html highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>${parameters.after!}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
+<div class="language-html highlighter-rouge"><div class="highlight"><pre
class="highlight"><code>${attributes.after!}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
<span class="nt"></td><</span><span class="na">#lt</span><span
class="nt">/></span>
<span class="nt"></tr></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="err">(</span><span class="na">parameters.errorposition</span><span
class="err">!"</span><span class="na">top</span><span class="err">"</span><span
class="na">) =</span><span class="s">=</span> <span class="err">'</span><span
class="na">bottom</span><span class="err">'</span><span class="nt">></span>
-<span class="nt"><</span><span class="na">#assign</span> <span
class="na">hasFieldErrors = </span><span class="s">parameters.name??</span>
<span class="err">&&</span> <span class="na">fieldErrors</span><span
class="err">??</span> <span class="err">&&</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">parameters.name</span><span class="err">]??</span><span
class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="err">(</span><span class="na">attributes.errorposition</span><span
class="err">!"</span><span class="na">top</span><span class="err">"</span><span
class="na">) =</span><span class="s">=</span> <span class="err">'</span><span
class="na">bottom</span><span class="err">'</span><span class="nt">></span>
+<span class="nt"><</span><span class="na">#assign</span> <span
class="na">hasFieldErrors = </span><span class="s">attributes.name??</span>
<span class="err">&&</span> <span class="na">fieldErrors</span><span
class="err">??</span> <span class="err">&&</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">attributes.name</span><span class="err">]??</span><span
class="nt">/></span>
<span class="nt"><</span><span class="na">#if</span> <span
class="na">hasFieldErrors</span><span class="nt">></span>
-<span class="nt"><tr</span> <span class="na">errorFor=</span><span
class="s">"${parameters.id}"</span><span class="nt">></span>
+<span class="nt"><tr</span> <span class="na">errorFor=</span><span
class="s">"${attributes.id}"</span><span class="nt">></span>
<span class="nt"><td</span> <span class="na">class=</span><span
class="s">"tdErrorMessage"</span> <span class="na">colspan=</span><span
class="s">"2"</span><span class="nt">><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"><</span><span class="na">#if</span> <span
class="na">hasFieldErrors</span><span class="nt">></span>
- <span class="nt"><</span><span class="na">#list</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">parameters.name</span><span class="err">]</span> <span
class="na">as</span> <span class="na">error</span><span class="nt">></span>
+ <span class="nt"><</span><span class="na">#list</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">attributes.name</span><span class="err">]</span> <span
class="na">as</span> <span class="na">error</span><span class="nt">></span>
<span class="nt"><div</span> <span
class="na">class=</span><span class="s">"errorMessage"</span><span
class="nt">></span>${error?html}<span
class="nt"></div><</span><span class="na">#t</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">list></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
@@ -415,22 +415,22 @@ Otherwise the AJAX response will be empty and the form
must be submitted a 2nd t
<div class="language-html highlighter-rouge"><div class="highlight"><pre
class="highlight"><code> <span class="nt"><</span><span class="na">#--</span>
<span class="na">Always</span> <span class="na">include</span> <span
class="na">elements</span> <span class="na">to</span> <span
class="na">show</span> <span class="na">errors.</span> <span
class="na">They</span> <span class="na">may</span> <span class="na">be</span>
<span class="na">filled</span> <span class="na">later</span> <span
class="na">via</span> <span class="na">AJAX.</span>
<span class="na">--</span><span class="nt">></span>
-<span class="nt"><</span><span class="na">#assign</span> <span
class="na">hasFieldErrors = </span><span class="s">parameters.name??</span>
<span class="err">&&</span> <span class="na">fieldErrors</span><span
class="err">??</span> <span class="err">&&</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">parameters.name</span><span class="err">]??</span><span
class="nt">/></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="err">(</span><span class="na">parameters.errorposition</span><span
class="err">!"</span><span class="na">top</span><span class="err">"</span><span
class="na">) =</span><span class="s">=</span> <span class="err">'</span><span
class="na">top</span><span class="err">'</span><span class="nt">></span>
-<span class="nt"><tr</span> <span class="na">errorFor=</span><span
class="s">"${parameters.id}"</span><span class="nt">></span>
- <span class="nt"><td</span> <span class="na">class=</span><span
class="s">"tdErrorMessage"</span> <span class="na">colspan=</span><span
class="s">"2"</span> <span class="na">data-error-for-fieldname=</span><span
class="s">"${parameters.name}"</span><span class="nt">><</span><span
class="na">#rt</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#assign</span> <span
class="na">hasFieldErrors = </span><span class="s">attributes.name??</span>
<span class="err">&&</span> <span class="na">fieldErrors</span><span
class="err">??</span> <span class="err">&&</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">attributes.name</span><span class="err">]??</span><span
class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="err">(</span><span class="na">attributes.errorposition</span><span
class="err">!"</span><span class="na">top</span><span class="err">"</span><span
class="na">) =</span><span class="s">=</span> <span class="err">'</span><span
class="na">top</span><span class="err">'</span><span class="nt">></span>
+<span class="nt"><tr</span> <span class="na">errorFor=</span><span
class="s">"${attributes.id}"</span><span class="nt">></span>
+ <span class="nt"><td</span> <span class="na">class=</span><span
class="s">"tdErrorMessage"</span> <span class="na">colspan=</span><span
class="s">"2"</span> <span class="na">data-error-for-fieldname=</span><span
class="s">"${attributes.name}"</span><span class="nt">><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"><</span><span class="na">#if</span> <span
class="na">hasFieldErrors</span><span class="nt">></span>
- <span class="nt"><</span><span class="na">#list</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">parameters.name</span><span class="err">]</span> <span
class="na">as</span> <span class="na">error</span><span class="nt">></span>
+ <span class="nt"><</span><span class="na">#list</span> <span
class="na">fieldErrors</span><span class="err">[</span><span
class="na">attributes.name</span><span class="err">]</span> <span
class="na">as</span> <span class="na">error</span><span class="nt">></span>
<span class="nt"><div</span> <span
class="na">class=</span><span class="s">"errorMessage"</span><span
class="nt">></span>${error?html}<span
class="nt"></div><</span><span class="na">#t</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">list></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
<span class="nt"></td><</span><span class="na">#lt</span><span
class="nt">/></span>
<span class="nt"></tr></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="err">!</span><span class="na">parameters.labelposition</span><span
class="err">??</span> <span class="err">&&</span> <span
class="err">(</span><span class="na">parameters.form.labelposition</span><span
class="err">)??</span><span class="nt">></span>
-<span class="nt"><</span><span class="na">#assign</span> <span
class="na">labelpos = </span><span
class="s">parameters.form.labelposition/</span><span class="nt">></span>
-<span class="nt"><</span><span class="na">#elseif</span> <span
class="na">parameters.labelposition</span><span class="err">??</span><span
class="nt">></span>
-<span class="nt"><</span><span class="na">#assign</span> <span
class="na">labelpos = </span><span
class="s">parameters.labelposition/</span><span class="nt">></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="err">!</span><span class="na">attributes.labelposition</span><span
class="err">??</span> <span class="err">&&</span> <span
class="err">(</span><span class="na">attributes.form.labelposition</span><span
class="err">)??</span><span class="nt">></span>
+<span class="nt"><</span><span class="na">#assign</span> <span
class="na">labelpos = </span><span
class="s">attributes.form.labelposition/</span><span class="nt">></span>
+<span class="nt"><</span><span class="na">#elseif</span> <span
class="na">attributes.labelposition</span><span class="err">??</span><span
class="nt">></span>
+<span class="nt"><</span><span class="na">#assign</span> <span
class="na">labelpos = </span><span
class="s">attributes.labelposition/</span><span class="nt">></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
<span class="nt"><</span><span class="na">#--</span>
<span class="na">if</span> <span class="na">the</span> <span
class="na">label</span> <span class="na">position</span> <span
class="na">is</span> <span class="na">top</span><span class="err">,</span>
@@ -442,10 +442,10 @@ Otherwise the AJAX response will be empty and the form
must be submitted a 2nd t
<span class="nt"><</span><span class="na">#else</span><span
class="nt">></span>
<span class="nt"><td</span> <span class="na">class=</span><span
class="s">"tdLabel"</span><span class="nt">><</span><span
class="na">#rt</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.label</span><span class="err">??</span><span
class="nt">></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.label</span><span class="err">??</span><span
class="nt">></span>
<span class="nt"><label</span> <span class="err"><</span><span
class="na">#t</span><span class="nt">/></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.id</span><span class="err">??</span><span
class="nt">></span>
- for="${parameters.id?html}" <span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.id</span><span class="err">??</span><span
class="nt">></span>
+ for="${attributes.id?html}" <span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
<span class="nt"><</span><span class="na">#if</span> <span
class="na">hasFieldErrors</span><span class="nt">></span>
class="errorLabel"<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
@@ -453,15 +453,15 @@ Otherwise the AJAX response will be empty and the form
must be submitted a 2nd t
class="label"<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
><span class="nt"><</span><span class="na">#t</span><span
class="nt">/></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.required</span><span class="err">!</span><span
class="na">false</span> <span class="err">&&</span> <span
class="na">parameters.requiredPosition</span><span class="err">!"</span><span
class="na">right</span><span class="err">"</span> <span class="err">!=</span>
<span class="err">'</span><span class="na">right</span><span
class="err">'</span><span class="nt">></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.required</span><span class="err">!</span><span
class="na">false</span> <span class="err">&&</span> <span
class="na">attributes.requiredPosition</span><span class="err">!"</span><span
class="na">right</span><span class="err">"</span> <span class="err">!=</span>
<span class="err">'</span><span class="na">right</span><span
class="err">'</span><span class="nt">></span>
<span class="nt"><span</span> <span class="na">class=</span><span
class="s">"required"</span><span class="nt">></span>*<span
class="nt"></span><</span><span class="na">#t</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-${parameters.label?html}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
-<span class="nt"><</span><span class="na">#if</span> <span
class="na">parameters.required</span><span class="err">!</span><span
class="na">false</span> <span class="err">&&</span> <span
class="na">parameters.requiredPosition</span><span class="err">!"</span><span
class="na">right</span><span class="err">"</span> <span class="err">==</span>
<span class="err">'</span><span class="na">right</span><span
class="err">'</span><span class="nt">></span>
+${attributes.label?html}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#if</span> <span
class="na">attributes.required</span><span class="err">!</span><span
class="na">false</span> <span class="err">&&</span> <span
class="na">attributes.requiredPosition</span><span class="err">!"</span><span
class="na">right</span><span class="err">"</span> <span class="err">==</span>
<span class="err">'</span><span class="na">right</span><span
class="err">'</span><span class="nt">></span>
<span class="nt"><span</span> <span class="na">class=</span><span
class="s">"required"</span><span class="nt">></span>*<span
class="nt"></span><</span><span class="na">#t</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
-${parameters.labelseparator!":"?html}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
-<span class="nt"><</span><span class="na">#include</span> <span
class="err">"/${</span><span class="na">parameters.templateDir</span><span
class="err">}/${</span><span class="na">parameters.expandTheme</span><span
class="err">}/</span><span class="na">tooltip.ftl</span><span
class="err">"</span> <span class="nt">/></span>
+${attributes.labelseparator!":"?html}<span class="nt"><</span><span
class="na">#t</span><span class="nt">/></span>
+<span class="nt"><</span><span class="na">#include</span> <span
class="err">"/${</span><span class="na">attributes.templateDir</span><span
class="err">}/${</span><span class="na">attributes.expandTheme</span><span
class="err">}/</span><span class="na">tooltip.ftl</span><span
class="err">"</span> <span class="nt">/></span>
<span class="nt"></label><</span><span class="na">#t</span><span
class="nt">/></span>
<span class="nt"></</span><span class="err">#</span><span
class="nt">if></span>
<span class="nt"></td><</span><span class="na">#lt</span><span
class="nt">/></span>
diff --git a/content/tag-developers/ajax-theme.html
b/content/tag-developers/ajax-theme.html
index 2c92deaba..1d48397f2 100644
--- a/content/tag-developers/ajax-theme.html
+++ b/content/tag-developers/ajax-theme.html
@@ -194,13 +194,13 @@ browsers. The supported browsers are:</p>
<p>The wrapping technique utilized by the ajax theme is much like <a
href="xhtml-theme">xhtml theme</a>, but the <code class="language-plaintext
highlighter-rouge">controlheader.ftl</code>
is a wee bit different.</p>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">if</span><span class="w"> </span>parameters.label?if_exists !=
""><span class="w">
- </span><#include "/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/xhtml/controlheader.ftl" /><span class="w">
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">if</span><span class="w"> </span>attributes.label?if_exists !=
""><span class="w">
+ </span><#include "/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/xhtml/controlheader.ftl" /><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
-</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>parameters.form?exists &&
parameters.form.validate?default(false) == true><span class="w">
+</span><span class="err"><#</span><span class="no">if</span><span
class="w"> </span>attributes.form?exists &&
attributes.form.validate?default(false) == true><span class="w">
</span><#-- can't mutate the data model in freemarker --><span
class="w">
- </span><#if parameters.onblur?exists><span class="w">
- </span>$<span class="p">{</span><span class="no">tag</span><span
class="na">.addParameter</span><span class="p">(</span><span
class="err">'</span><span class="no">onblur</span><span
class="err">'</span><span class="p">,</span><span class="w"> </span><span
class="s2">"validate(this);${parameters.onblur}"</span><span
class="p">)}</span><span class="w">
+ </span><#if attributes.onblur?exists><span class="w">
+ </span>$<span class="p">{</span><span class="no">tag</span><span
class="na">.addParameter</span><span class="p">(</span><span
class="err">'</span><span class="no">onblur</span><span
class="err">'</span><span class="p">,</span><span class="w"> </span><span
class="s2">"validate(this);${attributes.onblur}"</span><span
class="p">)}</span><span class="w">
</span><#else><span class="w">
</span>$<span class="p">{</span><span class="no">tag</span><span
class="na">.addParameter</span><span class="p">(</span><span
class="err">'</span><span class="no">onblur</span><span
class="err">'</span><span class="p">,</span><span class="w"> </span><span
class="s2">"validate(this);"</span><span class="p">)}</span><span class="w">
</span></#if><span class="w">
diff --git a/content/tag-developers/extending-themes.html
b/content/tag-developers/extending-themes.html
index 3abf7a1e3..b089e07cd 100644
--- a/content/tag-developers/extending-themes.html
+++ b/content/tag-developers/extending-themes.html
@@ -158,7 +158,7 @@
<li><a href="#extending-an-existing-theme"
id="markdown-toc-extending-an-existing-theme">Extending an Existing
Theme</a></li>
</ul>
</li>
- <li><a href="#special-parameters"
id="markdown-toc-special-parameters">Special parameters</a></li>
+ <li><a href="#special-attributes"
id="markdown-toc-special-attributes">Special attributes</a></li>
</ul>
<p>Most often, an application may just need to override a template (see <a
href="template-loading">Template Loading</a>) so that
@@ -189,9 +189,13 @@ by adding a header and footer.</p>
<h3 id="wrapping-a-control">Wrapping a control</h3>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">include</span><span class="w"> </span>"/$<span
class="p">{</span><span class="no">parameters</span><span
class="na">.templateDir</span><span class="p">}</span>/$<span
class="p">{</span><span class="no">parameters</span><span
class="na">.expandTheme</span><span class="p">}</span>/controlheader.ftl"
/><span class="w">
-</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/simple/xxx.ftl" /><span class="w">
-</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">parameters</span><span class="na">.expandTheme</span><span
class="p">}</span>/controlfooter.ftl" /><span class="w">
+<blockquote>
+ <p>NOTE: Since Struts 7.x the <code class="language-plaintext
highlighter-rouge">parameters</code> have been replaced with <code
class="language-plaintext highlighter-rouge">attributes</code></p>
+</blockquote>
+
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">include</span><span class="w"> </span>"/$<span
class="p">{</span><span class="no">attributes</span><span
class="na">.templateDir</span><span class="p">}</span>/$<span
class="p">{</span><span class="no">attributes</span><span
class="na">.expandTheme</span><span class="p">}</span>/controlheader.ftl"
/><span class="w">
+</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/simple/xxx.ftl" /><span class="w">
+</span><span class="err"><#</span><span class="no">include</span><span
class="w"> </span>"/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.templateDir</span><span
class="p">}</span>/$<span class="p">{</span><span
class="no">attributes</span><span class="na">.expandTheme</span><span
class="p">}</span>/controlfooter.ftl" /><span class="w">
</span></code></pre></div></div>
<p>Wrapping is a great way to augment the basic HTML elements provided by the
simple theme.</p>
@@ -211,7 +215,7 @@ The <a href="ajax-theme">ajax theme</a> extends the <a
href="xhtml-theme">xhtml
<p>An extended theme does not need to implement every single template that the
<a href="struts-tags">Struts Tags</a> expect.
It only needs to implement the templates that change. The other templates are
loaded from the parent template.</p>
-<h2 id="special-parameters">Special parameters</h2>
+<h2 id="special-attributes">Special attributes</h2>
<p><a
href="http://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/components/UIBean">UIBean</a>
provides few
special parameters which can be used to build a new template (they are already
used in <code class="language-plaintext highlighter-rouge">xhtml</code> and
<code class="language-plaintext highlighter-rouge">css_xhtml</code> theme):</p>
@@ -229,12 +233,12 @@ theme (and parent theme, and so on)</li>
<p>Using <code class="language-plaintext highlighter-rouge">expandTheme</code>
parameter allows to override only some parts of the theme’s templates, e.g.
<code class="language-plaintext highlighter-rouge">css.ftl</code>. You can
define a new theme (set <code class="language-plaintext
highlighter-rouge">theme.properties</code>) and override just single file.</p>
-<p><code class="language-plaintext
highlighter-rouge">${parameters.expandTheme}</code> is a recurrence which tells
<code class="language-plaintext highlighter-rouge">ThemeManager</code> to load
template from current theme and then
+<p><code class="language-plaintext
highlighter-rouge">${attributes.expandTheme}</code> is a recurrence which tells
<code class="language-plaintext highlighter-rouge">ThemeManager</code> to load
template from current theme and then
from parent theme (defined in <code class="language-plaintext
highlighter-rouge">theme.properties</code>) and so on.</p>
<p>Please also notice that the <code class="language-plaintext
highlighter-rouge">ThemeManager</code> builds list of possible templates based
on current theme and inherited
themes (<code class="language-plaintext
highlighter-rouge">/template/custom/textarea.ftl</code>, <code
class="language-plaintext
highlighter-rouge">/template/xhtml/textarea.ftl</code>, <code
class="language-plaintext
highlighter-rouge">/template/simple/textarea.ftl</code>). This is also
-true for templates which are loaded via <code class="language-plaintext
highlighter-rouge">${parameters.expandTheme}</code>.</p>
+true for templates which are loaded via <code class="language-plaintext
highlighter-rouge">${attributes.expandTheme}</code>.</p>
<blockquote>
<p>See also example <a href="">Struts 2 Themes</a> or <a
href="http://www.vitarara.org/cms/struts_2_cookbook/creating_a_theme">Creating
a Theme in Struts 2</a> (Mark Menard)</p>
diff --git a/content/tag-developers/form-tags.html
b/content/tag-developers/form-tags.html
index 0aa16cf32..4b855ecd7 100644
--- a/content/tag-developers/form-tags.html
+++ b/content/tag-developers/form-tags.html
@@ -222,9 +222,9 @@ is not supported.</p>
in to three categories: <em>templated-related</em>,
<em>javascript-related</em>, and <em>general</em> attributes. The individual
attributes
are documented on each tag’s reference page.</p>
-<p>In addition to the common attributes, a special attribute exists for all
form element tags: <code class="language-plaintext
highlighter-rouge">form</code> (<code class="language-plaintext
highlighter-rouge">${parameters.form}</code>).
+<p>In addition to the common attributes, a special attribute exists for all
form element tags: <code class="language-plaintext
highlighter-rouge">form</code> (<code class="language-plaintext
highlighter-rouge">${attributes.form}</code>).
The <code class="language-plaintext highlighter-rouge">form</code> property
represents the attributes used to render the form tag, such as the form’s id.
In a template,
-the form’s ID can be found by calling <code class="language-plaintext
highlighter-rouge">${parameters.form.id}</code>.</p>
+the form’s ID can be found by calling <code class="language-plaintext
highlighter-rouge">${attributes.form.id}</code>.</p>
<h2 id="template-related-attributes">Template-Related Attributes</h2>
@@ -559,8 +559,8 @@ If a <code class="language-plaintext
highlighter-rouge">value</code> is not spec
</span><span class="err"></@</span><span class="no">s</span><span
class="na">.form</span><span class="err">></span><span class="w">
</span></code></pre></div></div>
-<p>While most attributes are exposed to the underlying templates as the same
key as the attribute (<code class="language-plaintext
highlighter-rouge">${parameters.label}</code>),
-the <code class="language-plaintext highlighter-rouge">value</code> attribute
is not. Instead, it can be accessed via the <code class="language-plaintext
highlighter-rouge">nameValue</code> key (<code class="language-plaintext
highlighter-rouge">${parameters.nameValue}</code>).
+<p>While most attributes are exposed to the underlying templates as the same
key as the attribute (<code class="language-plaintext
highlighter-rouge">${attributes.label}</code>),
+the <code class="language-plaintext highlighter-rouge">value</code> attribute
is not. Instead, it can be accessed via the <code class="language-plaintext
highlighter-rouge">nameValue</code> key (<code class="language-plaintext
highlighter-rouge">${attributes.nameValue}</code>).
The <code class="language-plaintext highlighter-rouge">nameValue</code> key
indicates that the value may have been generated from the <code
class="language-plaintext highlighter-rouge">name</code> attribute rather than
explicitly
defined in the <code class="language-plaintext highlighter-rouge">value</code>
attribute.</p>
diff --git a/content/tag-developers/freemarker-tags.html
b/content/tag-developers/freemarker-tags.html
index 9fb3150de..748020dad 100644
--- a/content/tag-developers/freemarker-tags.html
+++ b/content/tag-developers/freemarker-tags.html
@@ -197,12 +197,16 @@ pages even easier to code. You can even invoke
third-party JSP taglibs as if the
<h2 id="attributes-and-parameters">Attributes and Parameters</h2>
+<blockquote>
+ <p>NOTE: Since Struts 7.x the <code class="language-plaintext
highlighter-rouge">parameters</code> have been replaced with <code
class="language-plaintext highlighter-rouge">attributes</code></p>
+</blockquote>
+
<p>Unlike older versions of JSP (in which the <a href="jsp-tags">JSP Tags</a>
are based), FreeMarker allows for <em>dynamic attributes</em>,
-much like JSP 2.0. You can supply attributes to the tags that the tag doesn’t
explicitedly support. Those attributes
-that cannot be applied directly to the tag object will be set to the tag’s
general-purpose <code class="language-plaintext
highlighter-rouge">parameters</code> Map.</p>
+much like JSP 2.0. You can supply attributes to the tags that the tag doesn’t
explicitly support. Those attributes
+that cannot be applied directly to the tag object will be set to the tag’s
general-purpose <code class="language-plaintext
highlighter-rouge">attributes</code> Map.</p>
-<p>Suppose we wanted to build an URL in a JSP. The URL needs to take an
arbitary parameter to the query string,
-that (being arbitary) isn’t specified on the URL tag. In a JSP, we’d have to
use the <code class="language-plaintext highlighter-rouge">url</code> and <code
class="language-plaintext highlighter-rouge">param</code> tags together.</p>
+<p>Suppose we wanted to build an URL in a JSP. The URL needs to take an
arbitrary parameter to the query string,
+that (being arbitrary) isn’t specified on the URL tag. In a JSP, we’d have to
use the <code class="language-plaintext highlighter-rouge">url</code> and <code
class="language-plaintext highlighter-rouge">param</code> tags together.</p>
<p><strong>Creating a URL with a query string (JSP)</strong></p>
@@ -232,10 +236,10 @@ attribute into the textfield tag, no fuss, no muss.</p>
</span><span class="err"></@</span><span class="no">s</span><span
class="na">.form</span><span class="err">></span><span class="w">
</span></code></pre></div></div>
-<p>In the new template, the description is referenced via the parameters Map:
<code class="language-plaintext
highlighter-rouge">${parameters.description}</code>.</p>
+<p>In the new template, the description is referenced via the attributes Map:
<code class="language-plaintext
highlighter-rouge">${attributes.description}</code>.</p>
<blockquote>
- <p>For simple cases, inline attributes are much easier to use than the
param} tag. But, the <code class="language-plaintext
highlighter-rouge">param</code> tag is more flexible
+ <p>For simple cases, inline attributes are much easier to use than the param
tag. But, the <code class="language-plaintext highlighter-rouge">param</code>
tag is more flexible
than inline attributes for advanced use cases. For example, <code
class="language-plaintext highlighter-rouge">param</code> can take the entire
body of the tag and apply
that as the <code class="language-plaintext highlighter-rouge">value</code>
attribute.</p>
</blockquote>
diff --git a/content/tag-developers/freemarker.html
b/content/tag-developers/freemarker.html
index 57a63afee..20ff5ca45 100644
--- a/content/tag-developers/freemarker.html
+++ b/content/tag-developers/freemarker.html
@@ -273,14 +273,14 @@ Request parameters, and framework Context scope
parameters.</p>
<p>Assuming there’s a request parameter <code class="language-plaintext
highlighter-rouge">myParameter</code> (eg.
[http://host/myApp/myAction.action?myParameter=one]).</p>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">if</span><span class="w">
</span>Parameters.myParameter?exists><span class="w">
- </span>$<span class="p">{</span><span class="nb">P</span><span
class="no">arameters</span><span class="na">.myParameter</span><span
class="p">}</span><span class="w">
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><#</span><span
class="no">if</span><span class="w">
</span>attributes.myParameter?exists><span class="w">
+ </span>$<span class="p">{</span><span class="no">attributes</span><span
class="na">.myParameter</span><span class="p">}</span><span class="w">
</span><span class="err"></#</span><span class="no">if</span><span
class="err">></span><span class="w">
</span></code></pre></div></div>
<p>or</p>
-<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><@</span><span
class="no">s</span><span class="na">.property</span><span class="w">
</span>value="%<span class="p">{</span><span class="err">#</span><span
class="no">parameters</span><span class="na">.myParameter</span><span
class="p">}</span>" /><span class="w">
+<div class="language-ftl highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="err"><@</span><span
class="no">s</span><span class="na">.property</span><span class="w">
</span>value="%<span class="p">{</span><span class="err">#</span><span
class="no">attributes</span><span class="na">.myParameter</span><span
class="p">}</span>" /><span class="w">
</span></code></pre></div></div>
<h3 id="context-parameter">Context parameter</h3>
diff --git a/content/tag-developers/xhtml-theme.html
b/content/tag-developers/xhtml-theme.html
index 379488869..230cccaa1 100644
--- a/content/tag-developers/xhtml-theme.html
+++ b/content/tag-developers/xhtml-theme.html
@@ -208,7 +208,7 @@ and <code class="language-plaintext
highlighter-rouge">controlfooter.ftl</code>
<#include
"/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl"
/></code></pre></figure>
<blockquote>
- <p>The <code class="language-plaintext
highlighter-rouge">controlheader.ftl</code> is referenced using <code
class="language-plaintext highlighter-rouge">${parameters.theme}</code> so that
the code can be reused
+ <p>The <code class="language-plaintext
highlighter-rouge">controlheader.ftl</code> is referenced using <code
class="language-plaintext highlighter-rouge">${attributes.theme}</code> so that
the code can be reused
by the <a href="ajax-theme">ajax theme</a>.</p>
</blockquote>