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 b37d540bd Updates stage by Jenkins b37d540bd is described below commit b37d540bd5b96e2a51ab506d38c3d5a9b1575f96 Author: jenkins <bui...@apache.org> AuthorDate: Sat Aug 10 05:40:47 2024 +0000 Updates stage by Jenkins --- content/announce-2024.html | 26 +++++++ .../ajax-client-side-validation.html | 84 ++++++++++----------- content/download.html | 56 +++++++------- content/index.html | 18 ++--- content/plugins/json/index.html | 12 +-- content/plugins/json/json-ajax-validation.html | 86 +++++++++++----------- content/plugins/plugins-architecture.html | 4 +- content/releases.html | 2 +- .../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, 204 insertions(+), 178 deletions(-) diff --git a/content/announce-2024.html b/content/announce-2024.html index 84a9e611d..89a456ca7 100644 --- a/content/announce-2024.html +++ b/content/announce-2024.html @@ -155,6 +155,32 @@ Skip to: <a href="announce-2023">Announcements - 2023</a> </p> +<h4 id="a20240810">10 August 2024 - Apache Struts version 6.6.0 General Availability</h4> + +<p>The Apache Struts group is pleased to announce that Apache Struts version 6.6.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.6.0">Version Notes</a> to find more details about performed +bug fixes and improvements.</p> +</blockquote> + +<p><strong>All developers are strongly advised to perform this upgrade.</strong></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>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>You can download this version from our <a href="download.cgi#struts-ga">download</a> page.</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> diff --git a/content/core-developers/ajax-client-side-validation.html b/content/core-developers/ajax-client-side-validation.html index c6a0790ce..2a86ffe19 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">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">></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"><div class="ajaxVisualFeedback"></div></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">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">></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"><div class="ajaxVisualFeedback"></div></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 -> 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"><li><span></span></li></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"><li><span></span></li></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"><div class="errorMessage"></div></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"><div class="errorMessage"></div></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 b742af526..8093d52ba 100644 --- a/content/download.html +++ b/content/download.html @@ -203,27 +203,27 @@ <h2 id="struts-ga">Full Releases</h2> -<h3 id="struts640">Struts 6.4.0</h3> +<h3 id="struts660">Struts 6.6.0</h3> <p> - The <a href="https://struts.apache.org/">Apache Struts 6.4.0</a> is an elegant, extensible + The <a href="https://struts.apache.org/">Apache Struts 6.6.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.4.0 is the "best available" version of Struts in the 6.x series. + Struts 6.6.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.4.0">Version Notes</a> + <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.6.0">Version Notes</a> </li> <li>Full Distribution: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-all.zip">struts-6.4.0-all.zip</a> (70MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-all.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-all.zip">struts-6.6.0-all.zip</a> (70MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-all.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-all.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-all.zip.sha512">SHA512</a>] </li> </ul> </li> @@ -231,10 +231,10 @@ <li>Example Applications: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-apps.zip">struts-6.4.0-apps.zip</a> (35MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-apps.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-apps.zip">struts-6.6.0-apps.zip</a> (35MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-apps.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-apps.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-apps.zip.sha512">SHA512</a>] </li> </ul> </li> @@ -242,10 +242,10 @@ <li>Essential Dependencies Only: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-min-lib.zip">struts-6.4.0-min-lib.zip</a> (5.9MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-min-lib.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-min-lib.zip">struts-6.6.0-min-lib.zip</a> (5.9MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-min-lib.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-min-lib.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-min-lib.zip.sha512">SHA512</a>] </li> </ul> </li> @@ -253,10 +253,10 @@ <li>All Dependencies: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-lib.zip">struts-6.4.0-lib.zip</a> (25.5MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-lib.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-lib.zip">struts-6.6.0-lib.zip</a> (25.5MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-lib.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-lib.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-lib.zip.sha512">SHA512</a>] </li> </ul> </li> @@ -264,10 +264,10 @@ <li>Documentation: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-docs.zip">struts-6.4.0-docs.zip</a> (2.5MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-docs.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-docs.zip">struts-6.6.0-docs.zip</a> (2.5MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-docs.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-docs.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-docs.zip.sha512">SHA512</a>] </li> </ul> </li> @@ -275,10 +275,10 @@ <li>Source: <ul> <li> - <a href="[preferred]struts/6.4.0/struts-6.4.0-src.zip">struts-6.4.0-src.zip</a> (6.8MB) - [<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>] - [<a href="https://downloads.apache.org/struts/6.4.0/struts-6.4.0-src.zip.sha512">SHA512</a>] + <a href="[preferred]struts/6.6.0/struts-6.6.0-src.zip">struts-6.6.0-src.zip</a> (6.8MB) + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-src.zip.asc">PGP</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-src.zip.sha256">SHA256</a>] + [<a href="https://downloads.apache.org/struts/6.6.0/struts-6.6.0-src.zip.sha512">SHA512</a>] </li> </ul> </li> diff --git a/content/index.html b/content/index.html index 4d838fb92..97363f2f0 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#struts640" class="btn btn-primary btn-large"> + <a href="download.cgi#struts660" 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.4.0 GA</h2> + <h2>Apache Struts 6.6.0 GA</h2> <p> - Apache Struts 6.4.0 GA has been released<br/>on 19 April 2024. + Apache Struts 6.6.0 GA has been released<br/>on 10 August 2024. </p> - 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> + Read more in <a href="announce-2024#a20240810">Announcement</a> or in + <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+6.6.0">Version notes</a> </div> <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-2023#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 2.5.33 GA</h2> diff --git a/content/plugins/json/index.html b/content/plugins/json/index.html index 9bd8f4ceb..40aae6b90 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"><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">/></span> <span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></span> </code></pre></div></div> diff --git a/content/plugins/json/json-ajax-validation.html b/content/plugins/json/json-ajax-validation.html index ea77d12f9..ebc227109 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"><</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">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">></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"><div class="ajaxVisualFeedback"></div></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">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">&&</span> <span class="nx">originalButton</span><span class="p">.</span><span class="nx">length</span> <span class="o">></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"><div class="ajaxVisualFeedback"></div></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 -> 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"><li><span></span></li></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"><li><span></span></li></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"><div class="errorMessage"></div></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"><div class="errorMessage"></div></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/plugins/plugins-architecture.html b/content/plugins/plugins-architecture.html index 8d3b6d6d9..03a0ee137 100644 --- a/content/plugins/plugins-architecture.html +++ b/content/plugins/plugins-architecture.html @@ -306,7 +306,7 @@ For example, a plugin could provide a new class to create Action classes or map <td>struts.velocity.manager.classname</td> <td>Loads and processes Velocity templates</td> <td>singleton</td> - <td>org.apache.struts2.views.velocity.VelocityManager</td> + <td>org.apache.struts2.views.velocity.VelocityManagerInterface</td> </tr> <tr> <td>struts.actionValidatorManager</td> @@ -699,7 +699,7 @@ with <em>no-arguments</em> constructor:</p> <span class="nd">@Override</span> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">register</span><span class="o">(</span><span class="nc">ContainerBuilder</span> <span class="n">builder</span><span class="o">,</span> <span class="nc">LocatableProperties</span> <span class="n">props</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">ConfigurationException</span> <span class="o">{</span> - <span class="n">alias</span><span class="o">(</span><span class="nc">VelocityManager</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="nc">VelocityConstants</span><span class="o">.</span><span class="na">STRUTS_VELOCITY_MANAGER_CLASSNAME</span><span class="o">,</span> <span class="n">builder</span><span class="o">,</span> <span class="n">props</span><span class="o">);</span> + <span class="n">alias</span><span class="o">(</span><span class="nc">VelocityManagerInterface</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="nc">VelocityConstants</span><span class="o">.</span><span class="na">STRUTS_VELOCITY_MANAGER_CLASSNAME</span><span class="o">,</span> <span class="n">builder</span><span class="o">,</span> <span class="n">props</span><span class="o">);</span> <span class="o">}</span> <span class="o">}</span> diff --git a/content/releases.html b/content/releases.html index 7c23f7f97..2e04ee1ad 100644 --- a/content/releases.html +++ b/content/releases.html @@ -168,7 +168,7 @@ <ul> <li> <a href="download.cgi#struts-ga"> - Struts 6.4.0 + Struts 6.6.0 </a> ("best available") </li> </ul> diff --git a/content/tag-developers/ajax-and-javascript-recipes.html b/content/tag-developers/ajax-and-javascript-recipes.html index 9100a780f..c7c22301c 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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></span> <span class="nt"><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">></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></span> <span class="nt"><sx:tabbedpanel </span><span class="na">id=</span><span class="s">"tabContainer"</span><span class="nt">></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></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"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></span> diff --git a/content/tag-developers/ajax-div-template.html b/content/tag-developers/ajax-div-template.html index 2229a8aa6..e40d15bcd 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"><saf:head</span> <span class="na">theme=</span><span class="s">"ajax"</span> <span class="nt">/></span> <span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></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"></script></span> <span class="nt"><form</span> <span class="err">...</span> <span class="nt">></span> diff --git a/content/tag-developers/ajax-event-system.html b/content/tag-developers/ajax-event-system.html index 65412d54a..92617e8de 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