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 88293e5e4 Updates stage by Jenkins
88293e5e4 is described below

commit 88293e5e4b8ac30eddc3be1d065dd43f99403780
Author: jenkins <bui...@apache.org>
AuthorDate: Sat Apr 20 08:22:34 2024 +0000

    Updates stage by Jenkins
---
 .../ajax-event-system.html => announce-2024.html}  | 79 +++++++++++++-------
 .../ajax-client-side-validation.html               | 84 ++++++++++-----------
 content/download.html                              | 44 +++++------
 content/index.html                                 | 26 +++----
 content/plugins/json/index.html                    | 12 +--
 content/plugins/json/json-ajax-validation.html     | 86 +++++++++++-----------
 content/releases.html                              | 47 +++++++++++-
 content/security/index.html                        | 14 +---
 .../ajax-and-javascript-recipes.html               | 78 ++++++++++----------
 content/tag-developers/ajax-div-template.html      | 12 +--
 content/tag-developers/ajax-event-system.html      |  4 +-
 11 files changed, 275 insertions(+), 211 deletions(-)

diff --git a/content/tag-developers/ajax-event-system.html 
b/content/announce-2024.html
similarity index 71%
copy from content/tag-developers/ajax-event-system.html
copy to content/announce-2024.html
index ba01d552e..df884004c 100644
--- a/content/tag-developers/ajax-event-system.html
+++ b/content/announce-2024.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Announcements 2024</title>
 
   <link 
href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic"
 rel="stylesheet" type="text/css">
   <link 
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" 
rel="stylesheet">
@@ -146,45 +146,70 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-event-system.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
+    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/announce-2024.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <h1 id="ajax-event-system">ajax event system</h1>
+    <h1 class="no_toc" id="announcements-2024">Announcements 2024</h1>
+
+
+<p class="pull-right">
+  Skip to: <a href="announce-2023">Announcements - 2023</a>
+</p>
+
+<h4 id="a20240420">20 April 2024 - Apache Struts version 7.0.0-M6</h4>
+
+<p>The Apache Struts group is pleased to announce that Apache Struts version 
7.0.0-MS is available as a Test Build.</p>
+
+<p>The Apache Struts is an elegant, extensible framework for creating 
enterprise-ready Java web applications.
+The framework has been designed to streamline the full development cycle, from 
building, to deploying,
+to maintaining applications over time.</p>
 
 <blockquote>
-  <p>NOTE: Ajax template (Dojo plugin) is deprecated and won’t be supported 
any longer.</p>
+  <p>Please read the <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+7.0.0-M6";>Version
 Notes</a> to find more details about performed
+bug fixes and improvements.</p>
 </blockquote>
 
-<p>As you may have seen with the <a href="ajax-div-template">ajax div 
template</a> and <a href="ajax-a-template">ajax a template</a>, 
-the framework and Dojo provide a nice way to subscribe and notify of topics 
from within the browser. A benefit of using 
-Dojo as the basis of many of these components is being able to loosely couple 
UI components. There are two 
-attributes of importance: <code class="language-plaintext 
highlighter-rouge">listenTopics</code> and <code class="language-plaintext 
highlighter-rouge">notifyTopics</code>.</p>
+<p><strong>This is a test build not ready to be used in production 
environments!</strong></p>
+
+<p>The 7.x series of the Apache Struts framework has a minimum requirement of 
the following specification versions:
+JakartaEE Servlet API 6.0.0, JakartaEE JSP API 3.0, and Java 17.</p>
 
-<ul>
-  <li>If a component has a <code class="language-plaintext 
highlighter-rouge">notifyTopics</code> attribute, then after the processing has 
been completed a message with be published 
-to the topic names supplied as a value (comma delimited).</li>
-  <li>If a component has a <code class="language-plaintext 
highlighter-rouge">listenTopics</code> attribute, then when a message is 
published to the topic names supplied as a value 
-(comma delimited), the component will perform custom tag-specific logic ( i.e 
a DIV tag will re-fresh its content).</li>
-</ul>
+<p>Should any issues arise with your use of any version of the Struts 
framework, please post your comments to the user list,
+and, if appropriate, file <a 
href="https://issues.apache.org/jira/projects/WW/";>a tracking ticket</a>.</p>
 
-<p>As well as this, you can publish and subscribe to topic names with 
javascript code. To publish to the <code class="language-plaintext 
highlighter-rouge">topic_name</code> topic:</p>
+<h4 id="a20240419">19 April 2024 - Apache Struts version 6.4.0 General 
Availability</h4>
+
+<p>The Apache Struts group is pleased to announce that Apache Struts version 
6.4.0 is available as a “General Availability”
+release. The GA designation is our highest quality grade.</p>
+
+<p>The Apache Struts is an elegant, extensible framework for creating 
enterprise-ready Java web applications.
+The framework has been designed to streamline the full development cycle, from 
building, to deploying,
+to maintaining applications over time.</p>
+
+<p>This version contains a lot of proactive security improvements, which 
should make your application hard to compromise.</p>
+
+<blockquote>
+  <p>Please read the <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.4.0";>Version
 Notes</a> to find more details about performed
+bug fixes and improvements.</p>
+</blockquote>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="n">dojo</span><span 
class="o">.</span><span class="na">event</span><span class="o">.</span><span 
class="na">topic</span><span class="o">.</span><span 
class="na">publish</span><span class="o">(</span><span 
class="s">"topic_name"</span><span class="o">,</span> <span 
class="s">"content"</span><span class="o">);</span>
-</code></pre></div></div>
+<p><strong>All developers are strongly advised to perform this 
upgrade.</strong></p>
 
-<p>The <code class="language-plaintext highlighter-rouge">topic_name</code> 
attribute is required, the content attribute is not and most elements are 
triggered without having this 
-attribute. See the <a href="ajax-div-template">ajax div template</a> for an 
example of this type of interaction.</p>
+<p>The 6.x series of the Apache Struts framework has a minimum requirement of 
the following specification versions:
+Servlet API 3.1, JSP API 2.1, and Java 8.</p>
 
-<p>To subscribe to the <code class="language-plaintext 
highlighter-rouge">topic_name</code> topic:</p>
+<p>Should any issues arise with your use of any version of the Struts 
framework, please post your comments to the user list,
+and, if appropriate, file <a 
href="https://issues.apache.org/jira/projects/WW/";>a tracking ticket</a>.</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">function</span> <span 
class="nf">doSomethingWithEvent</span><span class="p">(</span><span 
class="nx">data</span><span class="p">)</span> <span class="p">{</span>
-<span class="p">...</span>
-<span class="p">}</span>
+<p>You can download this version from our <a 
href="download.cgi#struts-ga">download</a> page.</p>
 
-<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">getTopic</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">topic_name</span><span 
class="dl">"</span><span class="p">).</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="kc">null</span><span class="p">,</span> <span class="dl">"</span><span 
class="s2">doSomethingWithEv [...]
-</code></pre></div></div>
+<p class="pull-right">
+  Skip to: <a href="announce-2023">Announcements - 2023</a>
+</p>
 
-<p>The <code class="language-plaintext highlighter-rouge">subscribe</code> 
method takes 2 parameters, the first is the JavaScript object variable (or null 
if the function is not 
-from an object) and the second is the name of the function to call when an 
event is received on the topic.</p>
+<p class="pull-left">
+  <strong>Next:</strong>
+  <a href="kickstart">Kickstart FAQ</a>
+</p>
 
   </section>
 </article>
diff --git a/content/core-developers/ajax-client-side-validation.html 
b/content/core-developers/ajax-client-side-validation.html
index 9570c2e5f..396dfbea1 100644
--- a/content/core-developers/ajax-client-side-validation.html
+++ b/content/core-developers/ajax-client-side-validation.html
@@ -509,21 +509,21 @@ It takes care of hiding validation errors that might be 
present, submit the form
   *
   * @param event onSubmit event
   */</span>
-<span class="kd">function</span> <span 
class="nf">ajaxFormValidation</span><span class="p">(</span><span 
class="nx">event</span><span class="p">)</span> <span class="p">{</span>
-    <span class="nx">event</span><span class="p">.</span><span 
class="nf">preventDefault</span><span class="p">();</span>
-    <span class="nf">_removeValidationErrors</span><span class="p">();</span>
-    <span class="kd">var</span> <span class="nx">_form</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">target</span><span class="p">);</span>
-    <span class="kd">var</span> <span class="nx">_formData</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nf">serialize</span><span class="p">(</span><span 
class="kc">true</span><span class="p">);</span>
+<span class="kd">function</span> <span 
class="nx">ajaxFormValidation</span><span class="p">(</span><span 
class="nx">event</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">event</span><span class="p">.</span><span 
class="nx">preventDefault</span><span class="p">();</span>
+    <span class="nx">_removeValidationErrors</span><span class="p">();</span>
+    <span class="kd">var</span> <span class="nx">_form</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">target</span><span class="p">);</span>
+    <span class="kd">var</span> <span class="nx">_formData</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nx">serialize</span><span class="p">(</span><span 
class="kc">true</span><span class="p">);</span>
     <span class="c1">// prepare visual feedback</span>
     <span class="c1">// you may want to use other elements here</span>
-    <span class="kd">var</span> <span class="nx">originalButton</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nf">find</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">.btn-primary</span><span class="dl">'</span><span class="p">);</span>
+    <span class="kd">var</span> <span class="nx">originalButton</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nx">find</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">.btn-primary</span><span class="dl">'</span><span class="p">);</span>
     <span class="c1">// note: jQuery returns an array-like object</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">originalButton</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&gt;</span> <span 
class="mi">0</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">originalButton</span><span class="p">.</span><span 
class="nf">hide</span><span class="p">();</span>
-        <span class="kd">var</span> <span class="nx">feedbackElement</span> 
<span class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="ajaxVisualFeedback"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">).</span><span class="nf">insertAfter</span><span 
class="p">(</span><span class="nx">originalButton</span><span 
class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">originalButton</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&gt;</span> <span 
class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">originalButton</span><span class="p">.</span><span 
class="nx">hide</span><span class="p">();</span>
+        <span class="kd">var</span> <span class="nx">feedbackElement</span> 
<span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="ajaxVisualFeedback"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">).</span><span class="nx">insertAfter</span><span 
class="p">(</span><span class="nx">originalButton</span><span 
class="p">);</span>
         <span class="kd">var</span> <span class="nx">restoreFunction</span> 
<span class="o">=</span> <span class="kd">function</span><span 
class="p">()</span> <span class="p">{</span>
-            <span class="nx">originalButton</span><span 
class="p">.</span><span class="nf">show</span><span class="p">();</span>
-            <span class="nx">feedbackElement</span><span 
class="p">.</span><span class="nf">remove</span><span class="p">();</span>
+            <span class="nx">originalButton</span><span 
class="p">.</span><span class="nx">show</span><span class="p">();</span>
+            <span class="nx">feedbackElement</span><span 
class="p">.</span><span class="nx">remove</span><span class="p">();</span>
         <span class="p">}</span>
     <span class="p">}</span>
     <span class="kd">var</span> <span class="nx">options</span> <span 
class="o">=</span> <span class="p">{</span>
@@ -531,48 +531,48 @@ It takes care of hiding validation errors that might be 
present, submit the form
         <span class="na">async</span><span class="p">:</span> <span 
class="kc">true</span><span class="p">,</span>
         <span class="na">processData</span><span class="p">:</span> <span 
class="kc">false</span><span class="p">,</span>
         <span class="na">type</span><span class="p">:</span> <span 
class="dl">'</span><span class="s1">POST</span><span class="dl">'</span><span 
class="p">,</span>
-        <span class="na">success</span><span class="p">:</span> <span 
class="nf">function </span><span class="p">(</span><span 
class="nx">response</span><span class="p">,</span> <span 
class="nx">statusText</span><span class="p">,</span> <span 
class="nx">xhr</span><span class="p">)</span> <span class="p">{</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">response</span><span class="p">.</span><span 
class="nx">location</span><span class="p">)</span> <span class="p">{</span>
+        <span class="na">success</span><span class="p">:</span> <span 
class="kd">function</span> <span class="p">(</span><span 
class="nx">response</span><span class="p">,</span> <span 
class="nx">statusText</span><span class="p">,</span> <span 
class="nx">xhr</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">response</span><span class="p">.</span><span 
class="nx">location</span><span class="p">)</span> <span class="p">{</span>
                 <span class="c1">// no validation errors</span>
                 <span class="c1">// action has been executed and sent a 
redirect URL wrapped as JSON</span>
                 <span class="c1">// cannot use a normal http-redirect 
(status-code 3xx) as this would be followed by browsers and would not be 
available here</span>
                 <span class="c1">// follow JSON-redirect</span>
                 <span class="nb">window</span><span class="p">.</span><span 
class="nx">location</span><span class="p">.</span><span class="nx">href</span> 
<span class="o">=</span> <span class="nx">response</span><span 
class="p">.</span><span class="nx">location</span><span class="p">;</span>
             <span class="p">}</span> <span class="k">else</span> <span 
class="p">{</span>
-                <span class="k">if </span><span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
-                    <span class="nf">restoreFunction</span><span 
class="p">();</span>
+                <span class="k">if</span> <span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
+                    <span class="nx">restoreFunction</span><span 
class="p">();</span>
                 <span class="p">}</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">response</span><span class="p">);</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">response</span><span class="p">);</span>
             <span class="p">}</span>
         <span class="p">},</span>
         <span class="na">error</span><span class="p">:</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">xhr</span><span class="p">,</span> <span 
class="nx">textStatus</span><span class="p">,</span> <span 
class="nx">errorThrown</span><span class="p">)</span> <span class="p">{</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
-                <span class="nf">restoreFunction</span><span 
class="p">();</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
+                <span class="nx">restoreFunction</span><span 
class="p">();</span>
             <span class="p">}</span>
             <span class="c1">// struts sends status code 400 when validation 
errors are present</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">xhr</span><span class="p">.</span><span class="nx">status</span> 
<span class="o">===</span> <span class="mi">400</span><span class="p">)</span> 
<span class="p">{</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">JSON</span><span class="p">.</span><span 
class="nf">parse</span><span class="p">(</span><span class="nx">xhr</span><span 
class="p">.</span><span class="nx">responseText</span><span class="p">))</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">xhr</span><span class="p">.</span><span class="nx">status</span> 
<span class="o">===</span> <span class="mi">400</span><span class="p">)</span> 
<span class="p">{</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">JSON</span><span class="p">.</span><span 
class="nx">parse</span><span class="p">(</span><span class="nx">xhr</span><span 
class="p">.</span><span class="nx">responseText</span><span class="p">))</span>
             <span class="p">}</span> <span class="k">else</span> <span 
class="p">{</span>
                 <span class="c1">// a real error occurred -&gt; show user an 
error message</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="p">{</span><span class="na">errors</span><span class="p">:</span> <span 
class="p">[</span><span class="dl">'</span><span class="s1">Network or server 
error!</span><span class="dl">'</span><span class="p">]})</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="p">{</span><span class="na">errors</span><span class="p">:</span> <span 
class="p">[</span><span class="dl">'</span><span class="s1">Network or server 
error!</span><span class="dl">'</span><span class="p">]})</span>
             <span class="p">}</span>
         <span class="p">}</span>
     <span class="p">}</span>
     <span class="c1">// send request, after delay to make sure everybody 
notices the visual feedback :)</span>
-    <span class="nb">window</span><span class="p">.</span><span 
class="nf">setTimeout</span><span class="p">(</span><span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="nb">window</span><span class="p">.</span><span 
class="nx">setTimeout</span><span class="p">(</span><span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="kd">var</span> <span class="nx">url</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">[</span><span 
class="mi">0</span><span class="p">].</span><span class="nx">action</span><span 
class="p">;</span>
-        <span class="nx">jQuery</span><span class="p">.</span><span 
class="nf">ajax</span><span class="p">(</span><span class="nx">url</span><span 
class="p">,</span> <span class="nx">options</span><span class="p">);</span>
+        <span class="nx">jQuery</span><span class="p">.</span><span 
class="nx">ajax</span><span class="p">(</span><span class="nx">url</span><span 
class="p">,</span> <span class="nx">options</span><span class="p">);</span>
     <span class="p">},</span> <span class="mi">1000</span><span 
class="p">);</span>
 <span class="p">}</span>
 <span class="cm">/**
  * Removes validation errors from HTML DOM.
  */</span>
-<span class="kd">function</span> <span 
class="nf">_removeValidationErrors</span><span class="p">()</span> <span 
class="p">{</span>
+<span class="kd">function</span> <span 
class="nx">_removeValidationErrors</span><span class="p">()</span> <span 
class="p">{</span>
     <span class="c1">// action errors</span>
     <span class="c1">// you might want to use a custom ID here</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage li</span><span 
class="dl">'</span><span class="p">).</span><span class="nf">remove</span><span 
class="p">();</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage li</span><span 
class="dl">'</span><span class="p">).</span><span class="nx">remove</span><span 
class="p">();</span>
     <span class="c1">// field errors</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">div.errorMessage</span><span 
class="dl">'</span><span class="p">).</span><span class="nf">remove</span><span 
class="p">();</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">div.errorMessage</span><span 
class="dl">'</span><span class="p">).</span><span class="nx">remove</span><span 
class="p">();</span>
 <span class="p">}</span>
 <span class="cm">/**
  * Incorporates validation errors in HTML DOM.
@@ -580,32 +580,32 @@ It takes care of hiding validation errors that might be 
present, submit the form
  * @param form Form containing errors.
  * @param errors Errors from server.
  */</span>
-<span class="kd">function</span> <span 
class="nf">_handleValidationResult</span><span class="p">(</span><span 
class="nx">form</span><span class="p">,</span> <span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
+<span class="kd">function</span> <span 
class="nx">_handleValidationResult</span><span class="p">(</span><span 
class="nx">form</span><span class="p">,</span> <span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
     <span class="c1">// action errors</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
         <span class="c1">// you might want to use a custom ID here</span>
-        <span class="kd">var</span> <span class="nx">errorContainer</span> 
<span class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage</span><span 
class="dl">'</span><span class="p">);</span>
-        <span class="nx">$</span><span class="p">.</span><span 
class="nf">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">index</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
-            <span class="kd">var</span> <span class="nx">li</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span 
class="s1">&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;</span><span 
class="dl">'</span><span class="p">);</span>
-            <span class="nx">li</span><span class="p">.</span><span 
class="nf">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
-            <span class="nx">errorContainer</span><span 
class="p">.</span><span class="nf">append</span><span class="p">(</span><span 
class="nx">li</span><span class="p">);</span>
+        <span class="kd">var</span> <span class="nx">errorContainer</span> 
<span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage</span><span 
class="dl">'</span><span class="p">);</span>
+        <span class="nx">$</span><span class="p">.</span><span 
class="nx">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">index</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
+            <span class="kd">var</span> <span class="nx">li</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span 
class="s1">&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;</span><span 
class="dl">'</span><span class="p">);</span>
+            <span class="nx">li</span><span class="p">.</span><span 
class="nx">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
+            <span class="nx">errorContainer</span><span 
class="p">.</span><span class="nx">append</span><span class="p">(</span><span 
class="nx">li</span><span class="p">);</span>
         <span class="p">});</span>
     <span class="p">}</span>
     <span class="c1">// field errors</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">$</span><span class="p">.</span><span 
class="nf">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">fieldName</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
-            <span class="kd">var</span> <span class="nx">td</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">td[data-error-for-fieldname="</span><span 
class="dl">'</span> <span class="o">+</span> <span class="nx">fieldName</span> 
<span class="o">+</span> <span class="dl">'</span><span 
class="s1">"]</span><span class="dl">'</span><span class="p">);</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">td</span><span class="p">)</span> <span class="p">{</span>
-                <span class="kd">var</span> <span class="nx">div</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="errorMessage"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">);</span>
-                <span class="nx">div</span><span class="p">.</span><span 
class="nf">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
-                <span class="nx">td</span><span class="p">.</span><span 
class="nf">append</span><span class="p">(</span><span 
class="nx">div</span><span class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">$</span><span class="p">.</span><span 
class="nx">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">fieldName</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
+            <span class="kd">var</span> <span class="nx">td</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">td[data-error-for-fieldname="</span><span 
class="dl">'</span> <span class="o">+</span> <span class="nx">fieldName</span> 
<span class="o">+</span> <span class="dl">'</span><span 
class="s1">"]</span><span class="dl">'</span><span class="p">);</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">td</span><span class="p">)</span> <span class="p">{</span>
+                <span class="kd">var</span> <span class="nx">div</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="errorMessage"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">);</span>
+                <span class="nx">div</span><span class="p">.</span><span 
class="nx">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
+                <span class="nx">td</span><span class="p">.</span><span 
class="nx">append</span><span class="p">(</span><span 
class="nx">div</span><span class="p">);</span>
             <span class="p">}</span>
         <span class="p">});</span>
     <span class="p">}</span>
 <span class="p">}</span>
 <span class="c1">// register onSubmit handler</span>
-<span class="nf">$</span><span class="p">(</span><span 
class="nb">window</span><span class="p">).</span><span 
class="nf">bind</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">load</span><span class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">form</span><span class="dl">'</span><span 
class="p">).</span><span class="nf">bind</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">submit</span><span class="dl">'</span><span 
class="p">,</span> <span class="nx">ajaxFormValidation</span><span 
class="p">);</span>
+<span class="nx">$</span><span class="p">(</span><span 
class="nb">window</span><span class="p">).</span><span 
class="nx">bind</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">load</span><span class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">form</span><span class="dl">'</span><span 
class="p">).</span><span class="nx">bind</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">submit</span><span class="dl">'</span><span 
class="p">,</span> <span class="nx">ajaxFormValidation</span><span 
class="p">);</span>
 <span class="p">});</span>
 </code></pre></div></div>
 
diff --git a/content/download.html b/content/download.html
index 8e1791630..70014e1de 100644
--- a/content/download.html
+++ b/content/download.html
@@ -203,26 +203,26 @@
 
 <h2 id="struts-ga">Full Releases</h2>
 
-<h3 id="struts6302">Struts 6.3.0.2</h3>
+<h3 id="struts640">Struts 6.4.0</h3>
 
 <p>
-  The <a href="https://struts.apache.org/";>Apache Struts 6.3.0.2</a> is an 
elegant, extensible
+  The <a href="https://struts.apache.org/";>Apache Struts 6.4.0</a> is an 
elegant, extensible
   framework for creating enterprise-ready Java web applications. It is 
available in a full distribution,
   or as separate library, source, example and documentation distributions.
-  Struts 6.3.0.2 is the "best available" version of Struts in the 6.x series.
+  Struts 6.4.0 is the "best available" version of Struts in the 6.x series.
 </p>
 
 <ul>
   <li>
-    <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.2";>Version
 Notes</a>
+    <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.4.0";>Version
 Notes</a>
   </li>
 
   <li>Full Distribution:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-all.zip">struts-6.3.0.2-all.zip</a>
 (73MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-all.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-all.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-all.zip">struts-6.4.0-all.zip</a> 
(73MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-all.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-all.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
@@ -230,9 +230,9 @@
   <li>Example Applications:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-apps.zip">struts-6.3.0.2-apps.zip</a>
 (32MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-apps.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-apps.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-apps.zip">struts-6.4.0-apps.zip</a> 
(32MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-apps.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-apps.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
@@ -240,9 +240,9 @@
   <li>Essential Dependencies Only:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-min-lib.zip">struts-6.3.0.2-min-lib.zip</a>
 (4MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-min-lib.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-min-lib.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-min-lib.zip">struts-6.4.0-min-lib.zip</a>
 (4MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-min-lib.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-min-lib.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
@@ -250,9 +250,9 @@
   <li>All Dependencies:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-lib.zip">struts-6.3.0.2-lib.zip</a>
 (24MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-lib.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-lib.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-lib.zip">struts-6.4.0-lib.zip</a> 
(24MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-lib.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-lib.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
@@ -260,9 +260,9 @@
   <li>Documentation:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-docs.zip">struts-6.3.0.2-docs.zip</a>
 (12MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-docs.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-docs.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-docs.zip">struts-6.4.0-docs.zip</a> 
(12MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-docs.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-docs.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
@@ -270,9 +270,9 @@
   <li>Source:
     <ul>
       <li>
-        <a 
href="[preferred]struts/6.3.0.2/struts-6.3.0.2-src.zip">struts-6.3.0.2-src.zip</a>
 (6MB)
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-src.zip.asc";>PGP</a>]
-        [<a 
href="https://downloads.apache.org/struts/6.3.0.2/struts-6.3.0.2-src.zip.sha256";>SHA256</a>]
+        <a 
href="[preferred]struts/6.4.0/struts-6.4.0-src.zip">struts-6.4.0-src.zip</a> 
(6MB)
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-src.zip.asc";>PGP</a>]
+        [<a 
href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-src.zip.sha256";>SHA256</a>]
       </li>
     </ul>
   </li>
diff --git a/content/index.html b/content/index.html
index d85a68a98..e57027721 100644
--- a/content/index.html
+++ b/content/index.html
@@ -154,7 +154,7 @@
       extensible using a plugin architecture, and ships with plugins to support
       REST, AJAX and JSON.
     </p>
-    <a href="download.cgi#struts6302" class="btn btn-primary btn-large">
+    <a href="download.cgi#struts640" class="btn btn-primary btn-large">
       <img src="img/download-icon.svg" alt="Download"> Download
     </a>
     <a href="primer.html" class="btn btn-info btn-large">
@@ -166,20 +166,20 @@
   <div class="col-md-12">
     <div class="row">
       <div class="column col-md-4">
-        <h2>Apache Struts 6.3.0.2 GA</h2>
+        <h2>Apache Struts 6.4.0 GA</h2>
         <p>
-          Apache Struts 6.3.0.2 GA has been released<br/>on 7 December 2023.
+          Apache Struts 6.4.0 GA has been released<br/>on 19 April 2024.
         </p>
-        Read more in <a href="announce-2023#a20231207-1">Announcement</a> or in
-        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.2";>Version
 notes</a>
+        Read more in <a href="announce-2024#a20240419">Announcement</a> or in
+        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.4.0";>Version
 notes</a>
       </div>
       <div class="column col-md-4">
-        <h2>Apache Struts 6.3.0.1 GA</h2>
+        <h2>Apache Struts 6.3.0.2 GA</h2>
         <p>
-          Apache Struts 6.3.0.1 GA has been released<br/>on 13 September 2023.
+          Apache Struts 6.3.0.2 GA has been released<br/>on 7 December 2023.
         </p>
-        Read more in <a href="announce-2023#a20230913-1">Announcement</a> or in
-        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.1";>Version
 notes</a>
+        Read more in <a href="announce-2023#a20231207-1">Announcement</a> or in
+        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.2";>Version
 notes</a>
       </div>
       <div class="column col-md-4">
         <h2>Apache Struts 2.5.33 GA</h2>
@@ -192,12 +192,12 @@
     </div>
     <div class="row">
       <div class="column col-md-4">
-        <h2>Apache Struts 6.3.0 GA</h2>
+        <h2>Apache Struts 7.0.0-M6</h2>
         <p>
-          Apache Struts 6.3.0 GA has been released<br/>on 4 September 2023.
+          Apache Struts 7.0.0-M6 test build is available as from 20 April 2024.
         </p>
-        Read more in <a href="announce-2023#a20230904">Announcement</a> or in
-        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0";>Version
 notes</a>
+        Read more in <a href="announce-2024#a20240420">Announcement</a> or in
+        <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+7.0.0-M6";>Version
 notes</a>
       </div>
       <div class="column col-md-4">
         <h2>Google's Patch Reward program</h2>
diff --git a/content/plugins/json/index.html b/content/plugins/json/index.html
index 42afd9ed8..d51e5232a 100644
--- a/content/plugins/json/index.html
+++ b/content/plugins/json/index.html
@@ -417,7 +417,7 @@ Thanks to Douglas Crockford for the tip! Consider using 
<strong>prefix</strong>
 </span></code></pre></div></div>
 <p>To strip those comments use:</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">var</span> <span 
class="nx">responseObject</span> <span class="o">=</span> <span 
class="nf">eval</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">(</span><span class="dl">"</span><span class="o">+</span><span 
class="nx">data</span><span class="p">.</span><span 
class="nf">substring</span><span class="p">(</span><span 
class="nx">data</span><span cla [...]
+<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">var</span> <span 
class="nx">responseObject</span> <span class="o">=</span> <span 
class="nb">eval</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">(</span><span class="dl">"</span><span class="o">+</span><span 
class="nx">data</span><span class="p">.</span><span 
class="nx">substring</span><span class="p">(</span><span 
class="nx">data</span><span cla [...]
 </code></pre></div></div>
 
 <h3 id="prefix">Prefix</h3>
@@ -837,24 +837,24 @@ must be enabled for both.</p>
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;s:url </span><span 
class="na">id=</span><span class="s">"smdUrl"</span><span class="na"> 
namespace=</span><span class="s">"/nodecorate"</span><span class="na"> 
action=</span><span class="s">"SMDAction"</span> <span class="nt">/&gt;</span>
 <span class="nt">&lt;script </span><span class="na">type=</span><span 
class="s">"text/javascript"</span><span class="nt">&gt;</span>
     <span class="c1">//load dojo RPC</span>
-    <span class="nx">dojo</span><span class="p">.</span><span 
class="nf">require</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">dojo.rpc.*</span><span class="dl">"</span><span class="p">);</span>
+    <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">require</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">dojo.rpc.*</span><span class="dl">"</span><span class="p">);</span>
     
     <span class="c1">//create service object(proxy) using SMD (generated by 
the json result)</span>
-    <span class="kd">var</span> <span class="nx">service</span> <span 
class="o">=</span> <span class="k">new</span> <span class="nx">dojo</span><span 
class="p">.</span><span class="nx">rpc</span><span class="p">.</span><span 
class="nc">JsonService</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">${smdUrl}</span><span 
class="dl">"</span><span class="p">);</span>
+    <span class="kd">var</span> <span class="nx">service</span> <span 
class="o">=</span> <span class="k">new</span> <span class="nx">dojo</span><span 
class="p">.</span><span class="nx">rpc</span><span class="p">.</span><span 
class="nx">JsonService</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">${smdUrl}</span><span 
class="dl">"</span><span class="p">);</span>
     
     <span class="c1">//function called when remote method returns</span>
     <span class="kd">var</span> <span class="nx">callback</span> <span 
class="o">=</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">bean</span><span class="p">)</span> <span 
class="p">{</span>
-        <span class="nf">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">Price for </span><span class="dl">"</span> 
<span class="o">+</span> <span class="nx">bean</span><span 
class="p">.</span><span class="nx">type</span> <span class="o">+</span> <span 
class="dl">"</span><span class="s2"> is </span><span class="dl">"</span> <span 
class="o">+</span> <span class="nx">bean</span><span class="p">.</span><span 
class="nx">price</span><span class="p">);</span>
+        <span class="nx">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">Price for </span><span class="dl">"</span> 
<span class="o">+</span> <span class="nx">bean</span><span 
class="p">.</span><span class="nx">type</span> <span class="o">+</span> <span 
class="dl">"</span><span class="s2"> is </span><span class="dl">"</span> <span 
class="o">+</span> <span class="nx">bean</span><span class="p">.</span><span 
class="nx">price</span><span class="p">);</span>
     <span class="p">};</span>
     
     <span class="c1">//parameter</span>
     <span class="kd">var</span> <span class="nx">bean</span> <span 
class="o">=</span> <span class="p">{</span><span class="na">type</span><span 
class="p">:</span> <span class="dl">"</span><span class="s2">Mocca</span><span 
class="dl">"</span><span class="p">};</span>
     
     <span class="c1">//execute remote method</span>
-    <span class="kd">var</span> <span class="nx">defered</span> <span 
class="o">=</span> <span class="nx">service</span><span class="p">.</span><span 
class="nf">doSomething</span><span class="p">(</span><span 
class="nx">bean</span><span class="p">,</span> <span class="mi">5</span><span 
class="p">);</span>
+    <span class="kd">var</span> <span class="nx">defered</span> <span 
class="o">=</span> <span class="nx">service</span><span class="p">.</span><span 
class="nx">doSomething</span><span class="p">(</span><span 
class="nx">bean</span><span class="p">,</span> <span class="mi">5</span><span 
class="p">);</span>
 
     <span class="c1">//attach callback to defered object</span>
-    <span class="nx">defered</span><span class="p">.</span><span 
class="nf">addCallback</span><span class="p">(</span><span 
class="nx">callback</span><span class="p">);</span>
+    <span class="nx">defered</span><span class="p">.</span><span 
class="nx">addCallback</span><span class="p">(</span><span 
class="nx">callback</span><span class="p">);</span>
 <span class="nt">&lt;/script&gt;</span>
 </code></pre></div></div>
 
diff --git a/content/plugins/json/json-ajax-validation.html 
b/content/plugins/json/json-ajax-validation.html
index 2ce7fea86..2de5fef8f 100644
--- a/content/plugins/json/json-ajax-validation.html
+++ b/content/plugins/json/json-ajax-validation.html
@@ -479,7 +479,7 @@ ${parameters.labelseparator!":"?html}<span 
class="nt">&lt;</span><span class="na
 <div class="language-js highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="p">.</span><span 
class="nx">ajaxVisualFeedback</span> <span class="p">{</span>
     <span class="nl">width</span><span class="p">:</span> <span 
class="mi">16</span><span class="nx">px</span><span class="p">;</span>
     <span class="nl">height</span><span class="p">:</span> <span 
class="mi">16</span><span class="nx">px</span><span class="p">;</span>
-    <span class="nx">background</span><span class="o">-</span><span 
class="nx">image</span><span class="p">:</span> <span 
class="nf">url</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">../images/indicator.gif</span><span class="dl">'</span><span 
class="p">);</span>
+    <span class="nx">background</span><span class="o">-</span><span 
class="nx">image</span><span class="p">:</span> <span 
class="nx">url</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">../images/indicator.gif</span><span class="dl">'</span><span 
class="p">);</span>
     <span class="nx">background</span><span class="o">-</span><span 
class="nx">repeat</span><span class="p">:</span> <span 
class="nx">no</span><span class="o">-</span><span class="nx">repeat</span><span 
class="p">;</span>
     <span class="nl">float</span><span class="p">:</span> <span 
class="nx">right</span><span class="p">;</span>
 <span class="p">}</span>
@@ -495,21 +495,21 @@ care of hiding validation errors that might be present, 
submit the form via AJAX
   *
   * @param event onSubmit event
   */</span>
-<span class="kd">function</span> <span 
class="nf">ajaxFormValidation</span><span class="p">(</span><span 
class="nx">event</span><span class="p">)</span> <span class="p">{</span>
-    <span class="nx">event</span><span class="p">.</span><span 
class="nf">preventDefault</span><span class="p">();</span>
-    <span class="nf">_removeValidationErrors</span><span class="p">();</span>
-    <span class="kd">var</span> <span class="nx">_form</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">target</span><span class="p">);</span>
-    <span class="kd">var</span> <span class="nx">_formData</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nf">serialize</span><span class="p">(</span><span 
class="kc">true</span><span class="p">);</span>
+<span class="kd">function</span> <span 
class="nx">ajaxFormValidation</span><span class="p">(</span><span 
class="nx">event</span><span class="p">)</span> <span class="p">{</span>
+    <span class="nx">event</span><span class="p">.</span><span 
class="nx">preventDefault</span><span class="p">();</span>
+    <span class="nx">_removeValidationErrors</span><span class="p">();</span>
+    <span class="kd">var</span> <span class="nx">_form</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">target</span><span class="p">);</span>
+    <span class="kd">var</span> <span class="nx">_formData</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nx">serialize</span><span class="p">(</span><span 
class="kc">true</span><span class="p">);</span>
     <span class="c1">// prepare visual feedback</span>
     <span class="c1">// you may want to use other elements here</span>
-    <span class="kd">var</span> <span class="nx">originalButton</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nf">find</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">.btn-primary</span><span class="dl">'</span><span class="p">);</span>
+    <span class="kd">var</span> <span class="nx">originalButton</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">.</span><span 
class="nx">find</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">.btn-primary</span><span class="dl">'</span><span class="p">);</span>
     <span class="c1">// note: jQuery returns an array-like object</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">originalButton</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&gt;</span> <span 
class="mi">0</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">originalButton</span><span class="p">.</span><span 
class="nf">hide</span><span class="p">();</span>
-        <span class="kd">var</span> <span class="nx">feedbackElement</span> 
<span class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="ajaxVisualFeedback"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">).</span><span class="nf">insertAfter</span><span 
class="p">(</span><span class="nx">originalButton</span><span 
class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">originalButton</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&amp;&amp;</span> <span 
class="nx">originalButton</span><span class="p">.</span><span 
class="nx">length</span> <span class="o">&gt;</span> <span 
class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">originalButton</span><span class="p">.</span><span 
class="nx">hide</span><span class="p">();</span>
+        <span class="kd">var</span> <span class="nx">feedbackElement</span> 
<span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="ajaxVisualFeedback"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">).</span><span class="nx">insertAfter</span><span 
class="p">(</span><span class="nx">originalButton</span><span 
class="p">);</span>
         <span class="kd">var</span> <span class="nx">restoreFunction</span> 
<span class="o">=</span> <span class="kd">function</span><span 
class="p">()</span> <span class="p">{</span>
-            <span class="nx">originalButton</span><span 
class="p">.</span><span class="nf">show</span><span class="p">();</span>
-            <span class="nx">feedbackElement</span><span 
class="p">.</span><span class="nf">remove</span><span class="p">();</span>
+            <span class="nx">originalButton</span><span 
class="p">.</span><span class="nx">show</span><span class="p">();</span>
+            <span class="nx">feedbackElement</span><span 
class="p">.</span><span class="nx">remove</span><span class="p">();</span>
         <span class="p">}</span>
     <span class="p">}</span>
     <span class="kd">var</span> <span class="nx">options</span> <span 
class="o">=</span> <span class="p">{</span>
@@ -517,48 +517,48 @@ care of hiding validation errors that might be present, 
submit the form via AJAX
         <span class="na">async</span><span class="p">:</span> <span 
class="kc">true</span><span class="p">,</span>
         <span class="na">processData</span><span class="p">:</span> <span 
class="kc">false</span><span class="p">,</span>
         <span class="na">type</span><span class="p">:</span> <span 
class="dl">'</span><span class="s1">POST</span><span class="dl">'</span><span 
class="p">,</span>
-        <span class="na">success</span><span class="p">:</span> <span 
class="nf">function </span><span class="p">(</span><span 
class="nx">response</span><span class="p">,</span> <span 
class="nx">statusText</span><span class="p">,</span> <span 
class="nx">xhr</span><span class="p">)</span> <span class="p">{</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">response</span><span class="p">.</span><span 
class="nx">location</span><span class="p">)</span> <span class="p">{</span>
+        <span class="na">success</span><span class="p">:</span> <span 
class="kd">function</span> <span class="p">(</span><span 
class="nx">response</span><span class="p">,</span> <span 
class="nx">statusText</span><span class="p">,</span> <span 
class="nx">xhr</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">response</span><span class="p">.</span><span 
class="nx">location</span><span class="p">)</span> <span class="p">{</span>
                 <span class="c1">// no validation errors</span>
                 <span class="c1">// action has been executed and sent a 
redirect URL wrapped as JSON</span>
                 <span class="c1">// cannot use a normal http-redirect 
(status-code 3xx) as this would be followed by browsers and would not be 
available here</span>
                 <span class="c1">// follow JSON-redirect</span>
                 <span class="nb">window</span><span class="p">.</span><span 
class="nx">location</span><span class="p">.</span><span class="nx">href</span> 
<span class="o">=</span> <span class="nx">response</span><span 
class="p">.</span><span class="nx">location</span><span class="p">;</span>
             <span class="p">}</span> <span class="k">else</span> <span 
class="p">{</span>
-                <span class="k">if </span><span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
-                    <span class="nf">restoreFunction</span><span 
class="p">();</span>
+                <span class="k">if</span> <span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
+                    <span class="nx">restoreFunction</span><span 
class="p">();</span>
                 <span class="p">}</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">response</span><span class="p">);</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">response</span><span class="p">);</span>
             <span class="p">}</span>
         <span class="p">},</span>
         <span class="na">error</span><span class="p">:</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">xhr</span><span class="p">,</span> <span 
class="nx">textStatus</span><span class="p">,</span> <span 
class="nx">errorThrown</span><span class="p">)</span> <span class="p">{</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
-                <span class="nf">restoreFunction</span><span 
class="p">();</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">restoreFunction</span><span class="p">)</span> <span 
class="p">{</span>
+                <span class="nx">restoreFunction</span><span 
class="p">();</span>
             <span class="p">}</span>
             <span class="c1">// struts sends status code 400 when validation 
errors are present</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">xhr</span><span class="p">.</span><span class="nx">status</span> 
<span class="o">===</span> <span class="mi">400</span><span class="p">)</span> 
<span class="p">{</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">JSON</span><span class="p">.</span><span 
class="nf">parse</span><span class="p">(</span><span class="nx">xhr</span><span 
class="p">.</span><span class="nx">responseText</span><span class="p">))</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">xhr</span><span class="p">.</span><span class="nx">status</span> 
<span class="o">===</span> <span class="mi">400</span><span class="p">)</span> 
<span class="p">{</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="nx">JSON</span><span class="p">.</span><span 
class="nx">parse</span><span class="p">(</span><span class="nx">xhr</span><span 
class="p">.</span><span class="nx">responseText</span><span class="p">))</span>
             <span class="p">}</span> <span class="k">else</span> <span 
class="p">{</span>
                 <span class="c1">// a real error occurred -&gt; show user an 
error message</span>
-                <span class="nf">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="p">{</span><span class="na">errors</span><span class="p">:</span> <span 
class="p">[</span><span class="dl">'</span><span class="s1">Network or server 
error!</span><span class="dl">'</span><span class="p">]})</span>
+                <span class="nx">_handleValidationResult</span><span 
class="p">(</span><span class="nx">_form</span><span class="p">,</span> <span 
class="p">{</span><span class="na">errors</span><span class="p">:</span> <span 
class="p">[</span><span class="dl">'</span><span class="s1">Network or server 
error!</span><span class="dl">'</span><span class="p">]})</span>
             <span class="p">}</span>
                <span class="p">}</span>
     <span class="p">}</span>
     <span class="c1">// send request, after delay to make sure everybody 
notices the visual feedback :)</span>
-    <span class="nb">window</span><span class="p">.</span><span 
class="nf">setTimeout</span><span class="p">(</span><span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="nb">window</span><span class="p">.</span><span 
class="nx">setTimeout</span><span class="p">(</span><span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
         <span class="kd">var</span> <span class="nx">url</span> <span 
class="o">=</span> <span class="nx">_form</span><span class="p">[</span><span 
class="mi">0</span><span class="p">].</span><span class="nx">action</span><span 
class="p">;</span>
-        <span class="nx">jQuery</span><span class="p">.</span><span 
class="nf">ajax</span><span class="p">(</span><span class="nx">url</span><span 
class="p">,</span> <span class="nx">options</span><span class="p">);</span>
+        <span class="nx">jQuery</span><span class="p">.</span><span 
class="nx">ajax</span><span class="p">(</span><span class="nx">url</span><span 
class="p">,</span> <span class="nx">options</span><span class="p">);</span>
     <span class="p">},</span> <span class="mi">1000</span><span 
class="p">);</span>
 <span class="p">}</span>
 <span class="cm">/**
  * Removes validation errors from HTML DOM.
  */</span>
-<span class="kd">function</span> <span 
class="nf">_removeValidationErrors</span><span class="p">()</span> <span 
class="p">{</span>
+<span class="kd">function</span> <span 
class="nx">_removeValidationErrors</span><span class="p">()</span> <span 
class="p">{</span>
     <span class="c1">// action errors</span>
     <span class="c1">// you might want to use a custom ID here</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage li</span><span 
class="dl">'</span><span class="p">).</span><span class="nf">remove</span><span 
class="p">();</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage li</span><span 
class="dl">'</span><span class="p">).</span><span class="nx">remove</span><span 
class="p">();</span>
     <span class="c1">// field errors</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">div.errorMessage</span><span 
class="dl">'</span><span class="p">).</span><span class="nf">remove</span><span 
class="p">();</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">div.errorMessage</span><span 
class="dl">'</span><span class="p">).</span><span class="nx">remove</span><span 
class="p">();</span>
 <span class="p">}</span>
 <span class="cm">/**
  * Incorporates validation errors in HTML DOM.
@@ -566,32 +566,32 @@ care of hiding validation errors that might be present, 
submit the form via AJAX
  * @param form Form containing errors.
  * @param errors Errors from server.
  */</span>
-<span class="kd">function</span> <span 
class="nf">_handleValidationResult</span><span class="p">(</span><span 
class="nx">form</span><span class="p">,</span> <span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
+<span class="kd">function</span> <span 
class="nx">_handleValidationResult</span><span class="p">(</span><span 
class="nx">form</span><span class="p">,</span> <span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
     <span class="c1">// action errors</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">)</span> <span class="p">{</span>
         <span class="c1">// you might want to use a custom ID here</span>
-        <span class="kd">var</span> <span class="nx">errorContainer</span> 
<span class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage</span><span 
class="dl">'</span><span class="p">);</span>
-        <span class="nx">$</span><span class="p">.</span><span 
class="nf">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">index</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
-            <span class="kd">var</span> <span class="nx">li</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span 
class="s1">&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;</span><span 
class="dl">'</span><span class="p">);</span>
-            <span class="nx">li</span><span class="p">.</span><span 
class="nf">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
-            <span class="nx">errorContainer</span><span 
class="p">.</span><span class="nf">append</span><span class="p">(</span><span 
class="nx">li</span><span class="p">);</span>
+        <span class="kd">var</span> <span class="nx">errorContainer</span> 
<span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">ul.errorMessage</span><span 
class="dl">'</span><span class="p">);</span>
+        <span class="nx">$</span><span class="p">.</span><span 
class="nx">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">errors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">index</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
+            <span class="kd">var</span> <span class="nx">li</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span 
class="s1">&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;</span><span 
class="dl">'</span><span class="p">);</span>
+            <span class="nx">li</span><span class="p">.</span><span 
class="nx">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
+            <span class="nx">errorContainer</span><span 
class="p">.</span><span class="nx">append</span><span class="p">(</span><span 
class="nx">li</span><span class="p">);</span>
         <span class="p">});</span>
     <span class="p">}</span>
     <span class="c1">// field errors</span>
-    <span class="k">if </span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">)</span> <span class="p">{</span>
-        <span class="nx">$</span><span class="p">.</span><span 
class="nf">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">fieldName</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
-            <span class="kd">var</span> <span class="nx">td</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">td[data-error-for-fieldname="</span><span 
class="dl">'</span> <span class="o">+</span> <span class="nx">fieldName</span> 
<span class="o">+</span> <span class="dl">'</span><span 
class="s1">"]</span><span class="dl">'</span><span class="p">);</span>
-            <span class="k">if </span><span class="p">(</span><span 
class="nx">td</span><span class="p">)</span> <span class="p">{</span>
-                <span class="kd">var</span> <span class="nx">div</span> <span 
class="o">=</span> <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="errorMessage"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">);</span>
-                <span class="nx">div</span><span class="p">.</span><span 
class="nf">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
-                <span class="nx">td</span><span class="p">.</span><span 
class="nf">append</span><span class="p">(</span><span 
class="nx">div</span><span class="p">);</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nx">$</span><span class="p">.</span><span 
class="nx">each</span><span class="p">(</span><span 
class="nx">errors</span><span class="p">.</span><span 
class="nx">fieldErrors</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">fieldName</span><span class="p">,</span> <span 
class="nx">errorMsg</span><span class="p">)</span> <span class="p">{</span>
+            <span class="kd">var</span> <span class="nx">td</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">td[data-error-for-fieldname="</span><span 
class="dl">'</span> <span class="o">+</span> <span class="nx">fieldName</span> 
<span class="o">+</span> <span class="dl">'</span><span 
class="s1">"]</span><span class="dl">'</span><span class="p">);</span>
+            <span class="k">if</span> <span class="p">(</span><span 
class="nx">td</span><span class="p">)</span> <span class="p">{</span>
+                <span class="kd">var</span> <span class="nx">div</span> <span 
class="o">=</span> <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">&lt;div 
class="errorMessage"&gt;&lt;/div&gt;</span><span class="dl">'</span><span 
class="p">);</span>
+                <span class="nx">div</span><span class="p">.</span><span 
class="nx">text</span><span class="p">(</span><span 
class="nx">errorMsg</span><span class="p">);</span> <span class="c1">// use 
text() for security reasons</span>
+                <span class="nx">td</span><span class="p">.</span><span 
class="nx">append</span><span class="p">(</span><span 
class="nx">div</span><span class="p">);</span>
             <span class="p">}</span>
         <span class="p">});</span>
     <span class="p">}</span>
 <span class="p">}</span>
 <span class="c1">// register onSubmit handler</span>
-<span class="nf">$</span><span class="p">(</span><span 
class="nb">window</span><span class="p">).</span><span 
class="nf">bind</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">load</span><span class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
-    <span class="nf">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">form</span><span class="dl">'</span><span 
class="p">).</span><span class="nf">bind</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">submit</span><span class="dl">'</span><span 
class="p">,</span> <span class="nx">ajaxFormValidation</span><span 
class="p">);</span>
+<span class="nx">$</span><span class="p">(</span><span 
class="nb">window</span><span class="p">).</span><span 
class="nx">bind</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">load</span><span class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">()</span> <span class="p">{</span>
+    <span class="nx">$</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">form</span><span class="dl">'</span><span 
class="p">).</span><span class="nx">bind</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">submit</span><span class="dl">'</span><span 
class="p">,</span> <span class="nx">ajaxFormValidation</span><span 
class="p">);</span>
 <span class="p">});</span>
 </code></pre></div></div>
 
diff --git a/content/releases.html b/content/releases.html
index 66c380adc..67f338ebe 100644
--- a/content/releases.html
+++ b/content/releases.html
@@ -168,7 +168,7 @@
     <ul>
       <li>
         <a href="download.cgi#struts-ga">
-          Struts 6.3.0.2
+          Struts 6.4.0
         </a> ("best available")
       </li>
     </ul>
@@ -245,12 +245,36 @@
   </tr>
   </thead>
   <tbody>
+  <tr>
+    <td class="no-wrap">
+      Struts 6.3.0.2
+    </td>
+    <td class="no-wrap">7 December September 2023</td>
+    <td>
+    </td>
+    <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.2";>Version
 notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 6.3.0.1
+    </td>
+    <td class="no-wrap">13 September 2023</td>
+    <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>
+    </td>
+    <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.3.0.1";>Version
 notes</a>
+    </td>
+  </tr>
   <tr>
     <td class="no-wrap">
       Struts 6.3.0
     </td>
     <td class="no-wrap">4 September 2023</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>
     </td>
     <td>
@@ -263,6 +287,7 @@
     </td>
     <td class="no-wrap">10 July 2023</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>
     </td>
     <td>
@@ -275,6 +300,7 @@
     </td>
     <td class="no-wrap">13 June 2023</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>
     </td>
     <td>
@@ -287,6 +313,7 @@
     </td>
     <td class="no-wrap">13 June 2023</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>
     </td>
     <td>
@@ -299,6 +326,8 @@
     </td>
     <td class="no-wrap">10 March 2023</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -312,6 +341,8 @@
     </td>
     <td class="no-wrap">28 November 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -325,6 +356,8 @@
     </td>
     <td class="no-wrap">15 September 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -338,6 +371,8 @@
     </td>
     <td class="no-wrap">6 June 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -351,6 +386,8 @@
     </td>
     <td class="no-wrap">4 April 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -364,6 +401,8 @@
     </td>
     <td class="no-wrap">22 January 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -377,6 +416,8 @@
     </td>
     <td class="no-wrap">02 January 2022</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -390,6 +431,8 @@
     </td>
     <td class="no-wrap">23 December 2021</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
@@ -403,6 +446,8 @@
     </td>
     <td class="no-wrap">17 December 2021</td>
     <td>
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-066";>S2-066</a>,
+      <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-065";>S2-065</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-064";>S2-064</a>,
       <a 
href="https://cwiki.apache.org/confluence/display/WW/S2-063";>S2-063</a>
     </td>
diff --git a/content/security/index.html b/content/security/index.html
index 2f6061c83..edb42891b 100644
--- a/content/security/index.html
+++ b/content/security/index.html
@@ -608,16 +608,10 @@ with other known dangerous classes or packages in your 
application.</p>
 <p>We additionally recommend enabling the following options (enabled by 
default in 7.0).</p>
 
 <ul>
-  <li><code class="language-plaintext 
highlighter-rouge">struts.ognl.allowStaticFieldAccess=false</code> - static 
field values which aren’t a primitive type can be used to access
-classes that wouldn’t otherwise be accessible</li>
-  <li><code class="language-plaintext 
highlighter-rouge">struts.disallowProxyObjectAccess=true</code> - disallow 
proxied objects from being used in OGNL expressions as these often
-represent application beans or database entities which are sensitive</li>
-  <li><code class="language-plaintext 
highlighter-rouge">struts.disallowDefaultPackageAccess=true</code> - disallow 
access to classes in the default package which should not be
-used in production</li>
-  <li><code class="language-plaintext 
highlighter-rouge">struts.ognl.disallowCustomOgnlMap=true</code> - disallow 
construction of custom OGNL maps which can be used to bypass the
-SecurityMemberAccess policy</li>
-  <li><code class="language-plaintext 
highlighter-rouge">struts.actionConfig.fallbackToEmptyNamespace=false</code> - 
prevent Actions in the empty namespace from being accessed from
-alternative endpoints</li>
+  <li><code class="language-plaintext 
highlighter-rouge">struts.ognl.allowStaticFieldAccess=false</code> - static 
methods are always blocked, but static fields can also optionally be 
blocked</li>
+  <li><code class="language-plaintext 
highlighter-rouge">struts.disallowProxyMemberAccess=true</code> - disallow 
proxied objects from being used in OGNL expressions as they may present a 
security risk</li>
+  <li><code class="language-plaintext 
highlighter-rouge">struts.disallowDefaultPackageAccess=true</code> - disallow 
access to classes in the default package which should not be used in 
production</li>
+  <li><code class="language-plaintext 
highlighter-rouge">struts.ognl.disallowCustomOgnlMap=true</code> - disallow 
construction of custom OGNL maps which can be used to bypass the 
SecurityMemberAccess policy</li>
 </ul>
 
 <h4 id="allowlist-capability">Allowlist Capability</h4>
diff --git a/content/tag-developers/ajax-and-javascript-recipes.html 
b/content/tag-developers/ajax-and-javascript-recipes.html
index c865b3e65..f162a0c2c 100644
--- a/content/tag-developers/ajax-and-javascript-recipes.html
+++ b/content/tag-developers/ajax-and-javascript-recipes.html
@@ -386,8 +386,8 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="publish-a-topic-after-the-request">Publish a topic after the 
request</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/after</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">data</span><span class="p">,</span> <span 
class="nx">request</span><span class="p">,</span> <span c [...]
-   <span class="nf">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">inside a topic event. after 
request</span><span class="dl">'</span><span class="p">);</span>
+<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/after</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">data</span><span class="p">,</span> <span 
class="nx">request</span><span class="p">,</span> <span c [...]
+   <span class="nx">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">inside a topic event. after 
request</span><span class="dl">'</span><span class="p">);</span>
    <span class="c1">//data : text returned from request</span>
    <span class="c1">//request: XMLHttpRequest object</span>
    <span class="c1">//widget: widget that published the topic</span>
@@ -408,8 +408,8 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="publish-a-topic-on-error">Publish a topic on error</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/error</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">error</span><span class="p">,</span> <span 
class="nx">request</span><span class="p">,</span> <span  [...]
-   <span class="nf">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">inside a topic event. on error</span><span 
class="dl">'</span><span class="p">);</span>
+<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/error</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">error</span><span class="p">,</span> <span 
class="nx">request</span><span class="p">,</span> <span  [...]
+   <span class="nx">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">inside a topic event. on error</span><span 
class="dl">'</span><span class="p">);</span>
    <span class="c1">//error : error object (error.message has the error 
message)</span>
    <span class="c1">//request: XMLHttpRequest object</span>
    <span class="c1">//widget: widget that published the topic</span>
@@ -445,8 +445,8 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="prevent-a-request">Prevent a request</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/before</span><span 
class="dl">"</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">widget</span><span class="p">){</span>
-   <span class="nf">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">I will stop this request</span><span 
class="dl">'</span><span class="p">);</span>
+<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/before</span><span 
class="dl">"</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">widget</span><span class="p">){</span>
+   <span class="nx">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">I will stop this request</span><span 
class="dl">'</span><span class="p">);</span>
    <span class="nx">event</span><span class="p">.</span><span 
class="nx">cancel</span> <span class="o">=</span> <span 
class="kc">true</span><span class="p">;</span>
 <span class="p">});</span>
 <span class="nt">&lt;/script&gt;</span>
@@ -589,26 +589,26 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="setget-value-using-javascript">Set/Get value using JavaScript</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-  <span class="kd">function</span> <span class="nf">setValue</span><span 
class="p">()</span> <span class="p">{</span>
-     <span class="kd">var</span> <span class="nx">picker</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">picker</span><span class="dl">"</span><span class="p">);</span>
+  <span class="kd">function</span> <span class="nx">setValue</span><span 
class="p">()</span> <span class="p">{</span>
+     <span class="kd">var</span> <span class="nx">picker</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">picker</span><span class="dl">"</span><span class="p">);</span>
      
      <span class="c1">//string value</span>
-     <span class="nx">picker</span><span class="p">.</span><span 
class="nf">setValue</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">2007-01-01</span><span 
class="dl">'</span><span class="p">);</span>
+     <span class="nx">picker</span><span class="p">.</span><span 
class="nx">setValue</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">2007-01-01</span><span 
class="dl">'</span><span class="p">);</span>
      
      <span class="c1">//Date value</span>
-     <span class="nx">picker</span><span class="p">.</span><span 
class="nf">setValue</span><span class="p">(</span><span class="k">new</span> 
<span class="nc">Date</span><span class="p">());</span>
+     <span class="nx">picker</span><span class="p">.</span><span 
class="nx">setValue</span><span class="p">(</span><span class="k">new</span> 
<span class="nb">Date</span><span class="p">());</span>
   <span class="p">}</span>
   
-  <span class="kd">function</span> <span class="nf">showValue</span><span 
class="p">()</span> <span class="p">{</span>
-     <span class="kd">var</span> <span class="nx">picker</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">picker</span><span class="dl">"</span><span class="p">);</span>
+  <span class="kd">function</span> <span class="nx">showValue</span><span 
class="p">()</span> <span class="p">{</span>
+     <span class="kd">var</span> <span class="nx">picker</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">picker</span><span class="dl">"</span><span class="p">);</span>
      
      <span class="c1">//string value</span>
-     <span class="kd">var</span> <span class="nx">stringValue</span> <span 
class="o">=</span> <span class="nx">picker</span><span class="p">.</span><span 
class="nf">getValue</span><span class="p">();</span>
-     <span class="nf">alert</span><span class="p">(</span><span 
class="nx">stringValue</span><span class="p">);</span>
+     <span class="kd">var</span> <span class="nx">stringValue</span> <span 
class="o">=</span> <span class="nx">picker</span><span class="p">.</span><span 
class="nx">getValue</span><span class="p">();</span>
+     <span class="nx">alert</span><span class="p">(</span><span 
class="nx">stringValue</span><span class="p">);</span>
       
      <span class="c1">//date value</span>
-     <span class="kd">var</span> <span class="nx">dateValue</span> <span 
class="o">=</span> <span class="nx">picker</span><span class="p">.</span><span 
class="nf">getDate</span><span class="p">();</span>
-     <span class="nf">alert</span><span class="p">(</span><span 
class="nx">dateValue</span><span class="p">);</span>
+     <span class="kd">var</span> <span class="nx">dateValue</span> <span 
class="o">=</span> <span class="nx">picker</span><span class="p">.</span><span 
class="nx">getDate</span><span class="p">();</span>
+     <span class="nx">alert</span><span class="p">(</span><span 
class="nx">dateValue</span><span class="p">);</span>
   <span class="p">}</span>
 <span class="nt">&lt;/script&gt;</span>
 
@@ -623,8 +623,8 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="publish-topic-when-value-changes">Publish topic when value changes</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-  <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/value</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">text</span><span class="p">,</span> <span 
class="nx">date</span><span class="p">,</span> <span cl [...]
-      <span class="nf">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">value changed</span><span 
class="dl">'</span><span class="p">);</span>
+  <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">/value</span><span class="dl">"</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">text</span><span class="p">,</span> <span 
class="nx">date</span><span class="p">,</span> <span cl [...]
+      <span class="nx">alert</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">value changed</span><span 
class="dl">'</span><span class="p">);</span>
       <span class="c1">//textEntered: String entered in the textbox</span>
       <span class="c1">//date: JavaScript Date object with the value 
selected</span>
       <span class="c1">//widget: widget that published the topic </span>
@@ -721,15 +721,15 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="enabledisable-tabs-using-javascript">Enable/Disable tabs using 
JavaScript</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-   <span class="kd">function</span> <span class="nf">enableTab</span><span 
class="p">(</span><span class="nx">param</span><span class="p">)</span> <span 
class="p">{</span>
-      <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">tabContainer</span><span class="dl">'</span><span class="p">);</span>
-      <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nf">enableTab</span><span class="p">(</span><span 
class="nx">param</span><span class="p">);</span>
+   <span class="kd">function</span> <span class="nx">enableTab</span><span 
class="p">(</span><span class="nx">param</span><span class="p">)</span> <span 
class="p">{</span>
+      <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">tabContainer</span><span class="dl">'</span><span class="p">);</span>
+      <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nx">enableTab</span><span class="p">(</span><span 
class="nx">param</span><span class="p">);</span>
    <span class="p">}</span>
     
    
-   <span class="kd">function</span> <span class="nf">disableTab</span><span 
class="p">(</span><span class="nx">param</span><span class="p">)</span> <span 
class="p">{</span>
-      <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">tabContainer</span><span class="dl">'</span><span class="p">);</span>
-      <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nf">disableTab</span><span class="p">(</span><span 
class="nx">param</span><span class="p">);</span>
+   <span class="kd">function</span> <span class="nx">disableTab</span><span 
class="p">(</span><span class="nx">param</span><span class="p">)</span> <span 
class="p">{</span>
+      <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">'</span><span 
class="s1">tabContainer</span><span class="dl">'</span><span class="p">);</span>
+      <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nx">disableTab</span><span class="p">(</span><span 
class="nx">param</span><span class="p">);</span>
    <span class="p">}</span>
 <span class="nt">&lt;/script&gt;</span>
 
@@ -782,12 +782,12 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="publish-topics-when-tab-is-selected">Publish topics when tab is 
selected</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/before</span><span 
class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">tab</span><span class="p">,</span> <span  [...]
-      <span class="nf">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">Before selecting tab</span><span 
class="dl">"</span><span class="p">);</span>
+   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/before</span><span 
class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">tab</span><span class="p">,</span> <span  [...]
+      <span class="nx">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">Before selecting tab</span><span 
class="dl">"</span><span class="p">);</span>
    <span class="p">});</span>
 
-   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/after</span><span class="dl">'</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">tab</span><span class="p">,</span> <span 
class="nx">tabContainer</span><span class="p">)</span>  [...]
-      <span class="nf">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">After tab was selected</span><span 
class="dl">"</span><span class="p">);</span>
+   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/after</span><span class="dl">'</span><span 
class="p">,</span> <span class="kd">function</span><span 
class="p">(</span><span class="nx">tab</span><span class="p">,</span> <span 
class="nx">tabContainer</span><span class="p">)</span>  [...]
+      <span class="nx">alert</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">After tab was selected</span><span 
class="dl">"</span><span class="p">);</span>
    <span class="p">});</span>
 <span class="nt">&lt;/script&gt;</span>
 <span class="nt">&lt;sx:tabbedpanel </span><span 
class="na">beforeSelectTabNotifyTopics=</span><span 
class="s">"/before"</span><span class="na"> 
afterSelectTabNotifyTopics=</span><span class="s">"/after"</span><span 
class="na"> id=</span><span class="s">"tabContainer"</span><span 
class="nt">&gt;</span>
@@ -803,9 +803,9 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="select-tab-using-javascript">Select tab using JavaScript</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-   <span class="kd">function</span> <span class="nf">selectTab</span><span 
class="p">(</span><span class="nx">id</span><span class="p">)</span> <span 
class="p">{</span>
-     <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">tabContainer</span><span class="dl">"</span><span class="p">);</span>
-     <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nf">selectTab</span><span class="p">(</span><span 
class="nx">id</span><span class="p">);</span>
+   <span class="kd">function</span> <span class="nx">selectTab</span><span 
class="p">(</span><span class="nx">id</span><span class="p">)</span> <span 
class="p">{</span>
+     <span class="kd">var</span> <span class="nx">tabContainer</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">tabContainer</span><span class="dl">"</span><span class="p">);</span>
+     <span class="nx">tabContainer</span><span class="p">.</span><span 
class="nx">selectTab</span><span class="p">(</span><span 
class="nx">id</span><span class="p">);</span>
    <span class="p">}</span>
 <span class="nt">&lt;/script&gt;</span>
 <span class="nt">&lt;sx:tabbedpanel </span><span class="na">id=</span><span 
class="s">"tabContainer"</span><span class="nt">&gt;</span>
@@ -824,7 +824,7 @@ dojo.event.topic.subscribe("/before", function(event, 
widget){
 <h3 id="prevent-tab-2-from-being-selected">Prevent tab 2 from being 
selected</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/before</span><span 
class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">tab</span><span class="p">,</span> <span  [...]
+   <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="dl">'</span><span class="s1">/before</span><span 
class="dl">'</span><span class="p">,</span> <span 
class="kd">function</span><span class="p">(</span><span 
class="nx">event</span><span class="p">,</span> <span 
class="nx">tab</span><span class="p">,</span> <span  [...]
       <span class="nx">event</span><span class="p">.</span><span 
class="nx">cancel</span> <span class="o">=</span> <span 
class="nx">tab</span><span class="p">.</span><span class="nx">widgetId</span> 
<span class="o">==</span> <span class="dl">"</span><span 
class="s2">tab2</span><span class="dl">"</span> <span class="p">;</span>
    <span class="p">});</span>
 <span class="nt">&lt;/script&gt;</span>
@@ -1058,14 +1058,14 @@ one for the selected value, and one for its associated 
key.</p>
 <h3 id="disable-itenable-it-using-javascript">Disable it/enable it using 
JavaScript</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-  <span class="kd">function</span> <span class="nf">enableit</span><span 
class="p">()</span> <span class="p">{</span>
-     <span class="kd">var</span> <span class="nx">autoCompleter</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">auto</span><span class="dl">"</span><span class="p">);</span>
-     <span class="nx">autoCompleter</span><span class="p">.</span><span 
class="nf">enable</span><span class="p">();</span>
+  <span class="kd">function</span> <span class="nx">enableit</span><span 
class="p">()</span> <span class="p">{</span>
+     <span class="kd">var</span> <span class="nx">autoCompleter</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">auto</span><span class="dl">"</span><span class="p">);</span>
+     <span class="nx">autoCompleter</span><span class="p">.</span><span 
class="nx">enable</span><span class="p">();</span>
   <span class="p">}</span>
 
-  <span class="kd">function</span> <span class="nf">disableit</span><span 
class="p">()</span> <span class="p">{</span>
-     <span class="kd">var</span> <span class="nx">autoCompleter</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nf">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">auto</span><span class="dl">"</span><span class="p">);</span>
-     <span class="nx">autoCompleter</span><span class="p">.</span><span 
class="nf">disable</span><span class="p">();</span>
+  <span class="kd">function</span> <span class="nx">disableit</span><span 
class="p">()</span> <span class="p">{</span>
+     <span class="kd">var</span> <span class="nx">autoCompleter</span> <span 
class="o">=</span> <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">widget</span><span class="p">.</span><span 
class="nx">byId</span><span class="p">(</span><span class="dl">"</span><span 
class="s2">auto</span><span class="dl">"</span><span class="p">);</span>
+     <span class="nx">autoCompleter</span><span class="p">.</span><span 
class="nx">disable</span><span class="p">();</span>
   <span class="p">}</span>
 <span class="nt">&lt;/script&gt;</span>
 
@@ -1089,7 +1089,7 @@ one for the selected value, and one for its associated 
key.</p>
 <h3 
id="filter-fields-top-be-submitted-when-options-are-loaded-return-true-to-include">Filter
 fields top be submitted when options are loaded (return true to include)</h3>
 
 <div class="language-jsp highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;script </span><span 
class="na">type=</span><span class="s">"text/javascript"</span><span 
class="nt">&gt;</span>
-  <span class="kd">function</span> <span class="nf">filter</span><span 
class="p">(</span><span class="nx">input</span><span class="p">)</span> <span 
class="p">{</span>
+  <span class="kd">function</span> <span class="nx">filter</span><span 
class="p">(</span><span class="nx">input</span><span class="p">)</span> <span 
class="p">{</span>
      <span class="k">return</span> <span class="nx">input</span><span 
class="p">.</span><span class="nx">name</span> <span class="o">==</span> <span 
class="dl">"</span><span class="s2">data1</span><span class="dl">"</span><span 
class="p">;</span>
   <span class="p">}</span>
 <span class="nt">&lt;/script&gt;</span>
diff --git a/content/tag-developers/ajax-div-template.html 
b/content/tag-developers/ajax-div-template.html
index 9a2ceceee..189b48f10 100644
--- a/content/tag-developers/ajax-div-template.html
+++ b/content/tag-developers/ajax-div-template.html
@@ -259,15 +259,15 @@ For the remote div with the component id <code 
class="language-plaintext highlig
 
 <p>To start refreshing use the javascript:</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nf">startTimer</span><span class="p">();</span>
+<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nx">startTimer</span><span class="p">();</span>
 </code></pre></div></div>
 <p>To stop refreshing use the javascript:</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nf">stopTimer</span><span class="p">();</span>
+<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nx">stopTimer</span><span class="p">();</span>
 </code></pre></div></div>
 <p>To refresh the content use the javascript:</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nf">refresh</span><span class="p">();</span>
+<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nx">remotediv1</span><span 
class="p">.</span><span class="nx">refresh</span><span class="p">();</span>
 </code></pre></div></div>
 
 <h2 id="javascript-examples">JavaScript Examples</h2>
@@ -282,12 +282,12 @@ the AJAX div so it refreshes.</p>
 <div class="language-html highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;saf:head</span> <span 
class="na">theme=</span><span class="s">"ajax"</span> <span 
class="nt">/&gt;</span>
 
 <span class="nt">&lt;script </span><span class="na">type=</span><span 
class="s">"text/javascript"</span><span class="nt">&gt;</span>
-    <span class="kd">function</span> <span 
class="nf">updateReports</span><span class="p">(</span><span 
class="nx">id</span><span class="p">)</span> <span class="p">{</span>
+    <span class="kd">function</span> <span 
class="nx">updateReports</span><span class="p">(</span><span 
class="nx">id</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">reportDiv</span><span 
class="o">=</span> <span class="nb">window</span><span class="p">[</span><span 
class="dl">'</span><span class="s1">reportDivId</span><span 
class="dl">'</span><span class="p">];</span>
        <span class="nx">reportDiv</span><span class="p">.</span><span 
class="nx">href</span> <span class="o">=</span> <span class="dl">'</span><span 
class="s1">/../reportListRemote.action?selectedId=</span><span 
class="dl">'</span><span class="o">+</span><span class="nx">id</span><span 
class="p">;</span>
-       <span class="nx">reportDiv</span><span class="p">.</span><span 
class="nf">refresh</span><span class="p">();</span>
+       <span class="nx">reportDiv</span><span class="p">.</span><span 
class="nx">refresh</span><span class="p">();</span>
     <span class="p">}</span>
-    <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">getTopic</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">updateReportsListTopic</span><span 
class="dl">"</span><span class="p">).</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="kc">null</span><span class="p">,</span> <span class="dl">"</span><span 
class="s2">u [...]
+    <span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">getTopic</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">updateReportsListTopic</span><span 
class="dl">"</span><span class="p">).</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="kc">null</span><span class="p">,</span> <span class="dl">"</span><span 
class="s2">u [...]
 <span class="nt">&lt;/script&gt;</span>
 
 <span class="nt">&lt;form</span> <span class="err">...</span> <span 
class="nt">&gt;</span>
diff --git a/content/tag-developers/ajax-event-system.html 
b/content/tag-developers/ajax-event-system.html
index ba01d552e..7d114b8c6 100644
--- a/content/tag-developers/ajax-event-system.html
+++ b/content/tag-developers/ajax-event-system.html
@@ -176,11 +176,11 @@ attribute. See the <a href="ajax-div-template">ajax div 
template</a> for an exam
 
 <p>To subscribe to the <code class="language-plaintext 
highlighter-rouge">topic_name</code> topic:</p>
 
-<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">function</span> <span 
class="nf">doSomethingWithEvent</span><span class="p">(</span><span 
class="nx">data</span><span class="p">)</span> <span class="p">{</span>
+<div class="language-javascript highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kd">function</span> <span 
class="nx">doSomethingWithEvent</span><span class="p">(</span><span 
class="nx">data</span><span class="p">)</span> <span class="p">{</span>
 <span class="p">...</span>
 <span class="p">}</span>
 
-<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nf">getTopic</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">topic_name</span><span 
class="dl">"</span><span class="p">).</span><span 
class="nf">subscribe</span><span class="p">(</span><span 
class="kc">null</span><span class="p">,</span> <span class="dl">"</span><span 
class="s2">doSomethingWithEv [...]
+<span class="nx">dojo</span><span class="p">.</span><span 
class="nx">event</span><span class="p">.</span><span 
class="nx">topic</span><span class="p">.</span><span 
class="nx">getTopic</span><span class="p">(</span><span 
class="dl">"</span><span class="s2">topic_name</span><span 
class="dl">"</span><span class="p">).</span><span 
class="nx">subscribe</span><span class="p">(</span><span 
class="kc">null</span><span class="p">,</span> <span class="dl">"</span><span 
class="s2">doSomethingWithEv [...]
 </code></pre></div></div>
 
 <p>The <code class="language-plaintext highlighter-rouge">subscribe</code> 
method takes 2 parameters, the first is the JavaScript object variable (or null 
if the function is not 

Reply via email to