This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/struts-site.git
The following commit(s) were added to refs/heads/asf-site by this push: new c68849d Automatic Site Publish by Buildbot c68849d is described below commit c68849dcfca72a1745303904980f267c19d31656 Author: buildbot <us...@infra.apache.org> AuthorDate: Sun Oct 4 08:32:42 2020 +0000 Automatic Site Publish by Buildbot --- output/core-developers/basic-validation.html | 25 +- output/core-developers/client-side-validation.html | 54 ++-- .../conditionalvisitor-validator.html | 23 +- output/core-developers/conversion-validator.html | 115 +++++---- output/core-developers/date-validator.html | 69 +++--- output/core-developers/double-validator.html | 66 ++--- output/core-developers/email-validator.html | 66 ++--- output/core-developers/expression-validator.html | 20 +- .../core-developers/fieldexpression-validator.html | 40 +-- output/core-developers/int-validator.html | 64 ++--- output/core-developers/namespace-annotation.html | 3 +- output/core-developers/regex-validator.html | 54 ++-- output/core-developers/required-validator.html | 34 +-- .../core-developers/requiredstring-validator.html | 55 +++-- output/core-developers/short-validator.html | 64 ++--- output/core-developers/stringlength-validator.html | 73 +++--- output/core-developers/url-validator.html | 38 +-- output/core-developers/using-field-validators.html | 95 ++++--- .../using-visitor-field-validator.html | 62 ++--- output/core-developers/validation.html | 50 ++-- output/core-developers/visitor-validator.html | 43 ++-- output/core-developers/zero-configuration.html | 274 --------------------- 22 files changed, 607 insertions(+), 780 deletions(-) diff --git a/output/core-developers/basic-validation.html b/output/core-developers/basic-validation.html index 3b41d3f..734472e 100644 --- a/output/core-developers/basic-validation.html +++ b/output/core-developers/basic-validation.html @@ -129,7 +129,14 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/basic-validation.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="basic-validation">Basic Validation</h1> + <h1 class="no_toc" id="basic-validation">Basic Validation</h1> + +<ul id="markdown-toc"> + <li><a href="#step-1" id="markdown-toc-step-1">Step 1</a></li> + <li><a href="#step-2" id="markdown-toc-step-2">Step 2</a></li> + <li><a href="#step-3" id="markdown-toc-step-3">Step 3</a></li> + <li><a href="#step-4" id="markdown-toc-step-4">Step 4</a></li> +</ul> <p>Let’s configure a basic validation workflow, step by step.</p> @@ -137,8 +144,7 @@ <p>Create the input form.</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="nt"><html></span> +<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><html></span> <span class="nt"><head></span> <span class="nt"><title></span>Struts2 Showcase - Validation - Basic<span class="nt"></title></span> <span class="nt"><s:head/></span> @@ -170,15 +176,13 @@ <span class="nt"></div></span> <span class="nt"></body></span> <span class="nt"></html></span> - </code></pre></div></div> <h2 id="step-2">Step 2</h2> <p>Create the Action class.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="kd">public</span> <span class="kd">class</span> <span class="nc">QuizAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">QuizAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span> <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">long</span> <span class="n">serialVersionUID</span> <span class="o">=</span> <span class="o">-</span><span class="mi">7505437345373234225L</span><span class="o">;</span> @@ -210,13 +214,12 @@ <span class="k">this</span><span class="o">.</span><span class="na">answer</span> <span class="o">=</span> <span class="n">answer</span><span class="o">;</span> <span class="o">}</span> <span class="o">}</span> - - </code></pre></div></div> <h2 id="step-3">Step 3</h2> -<p>Create the validators. The <code class="highlighter-rouge">validation.xml</code> format is either <code class="highlighter-rouge"><ActionClassName>-validation.xml</code> or <code class="highlighter-rouge"><ActionClassName>-<ActionAliasName>-validation.xml</code>.</p> +<p>Create the validators. The <code class="highlighter-rouge">validation.xml</code> format is either <code class="highlighter-rouge"><ActionClassName>-validation.xml</code> +or <code class="highlighter-rouge"><ActionClassName>-<ActionAliasName>-validation.xml</code>.</p> <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Add the following DOCTYPE declaration as first line of your XXX-validation.xml file: @@ -236,8 +239,6 @@ <span class="nt"></field-validator></span> <span class="nt"></field></span> <span class="nt"></validators></span> - - </code></pre></div></div> <h2 id="step-4">Step 4</h2> @@ -252,7 +253,7 @@ </code></pre></div></div> -<p>If you don’t have this, you’ll get a: “No result defined for action xxx.xxx.tutorial.HellowWorld and result input” error</p> +<p>If you don’t have this, you’ll get a: “No result defined for action xxx.xxx.tutorial.HellowWorld and result input” error.</p> </section> </article> diff --git a/output/core-developers/client-side-validation.html b/output/core-developers/client-side-validation.html index e47c888..93c4312 100644 --- a/output/core-developers/client-side-validation.html +++ b/output/core-developers/client-side-validation.html @@ -129,31 +129,41 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/client-side-validation.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="client-side-validation">Client Side Validation</h1> + <h1 class="no_toc" id="client-side-validation">Client Side Validation</h1> + +<ul id="markdown-toc"> + <li><a href="#basics" id="markdown-toc-basics">Basics</a></li> + <li><a href="#referencing-submitprofile-in-the-user-namespace" id="markdown-toc-referencing-submitprofile-in-the-user-namespace">Referencing “submitProfile” in the “/user” namespace</a></li> + <li><a href="#wont-work-with-client-side-validation" id="markdown-toc-wont-work-with-client-side-validation">Won’t work with client-side validation!</a></li> + <li><a href="#the-left-hand-doesnt-know-" id="markdown-toc-the-left-hand-doesnt-know-">The left hand doesn’t know …</a></li> + <li><a href="#client-side-validation-types" id="markdown-toc-client-side-validation-types">Client Side Validation Types</a></li> +</ul> + +<h2 id="basics">Basics</h2> <p>The framework adds support for client-side validation on top of the standard validation framework.</p> -<p>Client-side validation can be enabled on a per-form basis by specifying <code class="highlighter-rouge">validate="true"</code> in the <em>form</em> tag.</p> +<p>Client-side validation can be enabled on a per-form basis by specifying <code class="highlighter-rouge">validate="true"</code> in the <em>form</em> tag.</p> <pre><code class="language-jsp"><s:form name="test" action="javascriptValidation" validate="true"> ... </s:form> - </code></pre> -<p>If a <code class="highlighter-rouge">name</code> for the form is not given, the action mapping name will be used as the form name. Otherwise, a correct <code class="highlighter-rouge">action</code> and <code class="highlighter-rouge">namespace</code> attributes must be provided to the <code class="highlighter-rouge"><saf:form></code> tag.</p> +<p>If a <code class="highlighter-rouge">name</code> for the form is not given, the action mapping name will be used as the form name. Otherwise, a correct +<code class="highlighter-rouge">action</code> and <code class="highlighter-rouge">namespace</code> attributes must be provided to the <code class="highlighter-rouge"><saf:form></code> tag.</p> -<p><strong>Referencing “submitProfile” in the “/user” namespace</strong></p> +<h2 id="referencing-submitprofile-in-the-user-namespace">Referencing “submitProfile” in the “/user” namespace</h2> <pre><code class="language-jsp"><s:form namespace="/user" action="submitProfile" validate="true"> ... </s:form> - </code></pre> -<p>Technically, the form’s action attribute can refer to a “path” that includes the namespace and action as a URI. But, client-side validation <strong>requires</strong> that the action name and namespeact to be set separately.</p> +<p>Technically, the form’s action attribute can refer to a “path” that includes the namespace and action as a URI. +But, client-side validation <strong>requires</strong> that the action name and namespeact to be set separately.</p> -<p><strong>Won’t work with client-side validation!</strong></p> +<h2 id="wont-work-with-client-side-validation">Won’t work with client-side validation!</h2> <pre><code class="language-jsp"><s:form action="/user/submitProfile.action" validate="true"> ... @@ -161,24 +171,16 @@ </code></pre> -<p>All the usual <a href="#PAGE_14292">validation configuration</a> steps apply to client-side validation. Client-side validation uses the same validation rules as server-side validation. If server-side validation doesn’t work, then client-side validation won’t work either.</p> - -<p><strong>(i) The left hand doesn’t know ...</strong></p> - -<blockquote> - -</blockquote> - -<blockquote> - -</blockquote> +<p>All the usual <a href="validation">validation configuration</a> steps apply to client-side validation. Client-side validation +uses the same validation rules as server-side validation. If server-side validation doesn’t work, then client-side +validation won’t work either.</p> -<blockquote> - <p>The required attribute on many <em>Struts Tags</em> is not integrated with client-side validation! The tag attribute is used by certain themes (like xhtml) to put a visual marker (usually ‘*’) next to the field. The tag doesn’t know if the validation system actually “requires” the field or not.</p> -</blockquote> +<h2 id="the-left-hand-doesnt-know-">The left hand doesn’t know …</h2> <blockquote> - + <p>The required attribute on many <em>Struts Tags</em> is not integrated with client-side validation! The tag attribute is used +by certain themes (like xhtml) to put a visual marker (usually ‘*’) next to the field. The tag doesn’t know +if the validation system actually “requires” the field or not.</p> </blockquote> <h2 id="client-side-validation-types">Client Side Validation Types</h2> @@ -188,13 +190,13 @@ <table> <thead> <tr> - <th><a href="pure-java-script-client-side-validation.html">Pure JavaScript Client Side Validation</a></th> - <th>Used by the <em>xhtml theme</em> and <em>css_xhtml theme</em></th> + <th><a href="pure-java-script-client-side-validation">Pure JavaScript Client Side Validation</a></th> + <th>Used by the <em>xhtml theme</em> and <em>css_xhtml theme</em></th> </tr> </thead> <tbody> <tr> - <td><a href="ajax-client-side-validation.html">AJAX Client Side Validation</a></td> + <td><a href="ajax-client-side-validation">AJAX Client Side Validation</a></td> <td>Used by the <em>ajax theme</em></td> </tr> </tbody> diff --git a/output/core-developers/conditionalvisitor-validator.html b/output/core-developers/conditionalvisitor-validator.html index 6b556b8..1fe56a2 100644 --- a/output/core-developers/conditionalvisitor-validator.html +++ b/output/core-developers/conditionalvisitor-validator.html @@ -129,11 +129,18 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/conditionalvisitor-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="conditionalvisitor-validator">conditionalvisitor validator</h1> + <h1 class="no_toc" id="conditionalvisitor-validator">conditionalvisitor validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> -<p>The ConditionalVisitorFieldValidator will forward validation to the VisitorFieldValidator only if the expression will evaluate to true.</p> +<p>The ConditionalVisitorFieldValidator will forward validation to the VisitorFieldValidator only if the expression +will evaluate to true.</p> <h2 id="parameters">Parameters</h2> @@ -143,12 +150,12 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><field name="colleaguePosition"> - <field-validator type="conditionalvisitor"> - <param name="expression">reason == 'colleague' and colleaguePositionID == 'OTHER'</param> - <message>You must select reason Colleague and position Other</message> - </field-validator> -</field> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><field</span> <span class="na">name=</span><span class="s">"colleaguePosition"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"conditionalvisitor"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"expression"</span><span class="nt">></span>reason == 'colleague' and colleaguePositionID == 'OTHER'<span class="nt"></param></span> + <span class="nt"><message></span>You must select reason Colleague and position Other<span class="nt"></message></span> + <span class="nt"></field-validator></span> +<span class="nt"></field></span> </code></pre></div></div> </section> diff --git a/output/core-developers/conversion-validator.html b/output/core-developers/conversion-validator.html index b2b6df8..b708bd3 100644 --- a/output/core-developers/conversion-validator.html +++ b/output/core-developers/conversion-validator.html @@ -129,7 +129,14 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/conversion-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="conversion-validator">conversion validator</h1> + <h1 class="no_toc" id="conversion-validator">conversion validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> + <li><a href="#repopulating-field-upon-conversion-error" id="markdown-toc-repopulating-field-upon-conversion-error">Repopulating Field upon conversion Error</a></li> +</ul> <h2 id="description">Description</h2> @@ -143,73 +150,81 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- Plain Validator Syntax --> -<validator type="conversion"> - <param name="fieldName">myField</param> - <message>Conversion Error Occurred</message> -</validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Plain Validator Syntax --></span> +<span class="nt"><validator</span> <span class="na">type=</span><span class="s">"conversion"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myField<span class="nt"></param></span> + <span class="nt"><message></span>Conversion Error Occurred<span class="nt"></message></span> +<span class="nt"></validator></span> -<!-- Field Validator Syntax --> -<field name="myField"> - <field-validator type="conversion"> - <message>Conversion Error Occurred</message> - </field-validator> -</field> +<span class="c"><!-- Field Validator Syntax --></span> +<span class="nt"><field</span> <span class="na">name=</span><span class="s">"myField"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"conversion"</span><span class="nt">></span> + <span class="nt"><message></span>Conversion Error Occurred<span class="nt"></message></span> + <span class="nt"></field-validator></span> +<span class="nt"></field></span> </code></pre></div></div> <h2 id="repopulating-field-upon-conversion-error">Repopulating Field upon conversion Error</h2> -<p>The capability of auto-repopulating the stack with a fake parameter map when a conversion error has occurred can be done with <code class="highlighter-rouge">repopulateField</code> property set to <code class="highlighter-rouge">true</code>.</p> +<blockquote> + <p>The capability of auto-repopulating the stack with a fake parameter map when a conversion error has occurred can be +done with <code class="highlighter-rouge">repopulateField</code> property set to <code class="highlighter-rouge">true</code>.</p> +</blockquote> -<p>This is typically useful when one wants to repopulate the field with the original value when a conversion error occurred. Eg. with a textfield that only allows an Integer (the action class have an Integer field declared), upon conversion error, the incorrectly entered integer (maybe a text ‘one’) will not appear when dispatched back. With <code class="highlighter-rouge">repopulateField</code> property set to true, it will, meaning the textfield will have ‘one’ as its value upon conver [...] +<p>This is typically useful when one wants to repopulate the field with the original value when a conversion error occurred. +Eg. with a textfield that only allows an Integer (the action class have an Integer field declared), upon conversion error, +the incorrectly entered integer (maybe a text ‘one’) will not appear when dispatched back. With <code class="highlighter-rouge">repopulateField</code> +property set to true, it will, meaning the textfield will have ‘one’ as its value upon conversion error.</p> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- myJspPage.jsp --> -<s:form action="someAction" method="POST"> +<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- myJspPage.jsp --></span> +<span class="nt"><s:form</span> <span class="na">action=</span><span class="s">"someAction"</span> <span class="na">method=</span><span class="s">"POST"</span><span class="nt">></span> .... - <s:textfield label="My Integer Field" name="myIntegerField" /> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"My Integer Field"</span> <span class="na">name=</span><span class="s">"myIntegerField"</span> <span class="nt">/></span> .... - <s:submit /> -</s:form> + <span class="nt"><s:submit</span> <span class="nt">/></span> +<span class="nt"></s:form></span> </code></pre></div></div> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- xwork.xml --> -<xwork> -<include file="xwork-default.xml" /> +<pre><code class="language-xmls"><struts> .... -<package name="myPackage" extends="xwork-default"> - .... - <action name="someAction" class="example.MyActionSupport.java"> - <result name="input">myJspPage.jsp</result> - <result>success.jsp</result> - </action> - .... -</package> + <package name="myPackage" extends="struts-default"> + .... + <action name="someAction" class="example.MyActionSupport.java"> + <result name="input">myJspPage.jsp</result> + <result>success.jsp</result> + </action> + .... + </package> .... -</xwork> -</code></pre></div></div> +</struts> +</code></pre> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- MyActionSupport.java --> -public class MyActionSupport extends ActionSupport { - private Integer myIntegerField; - - public Integer getMyIntegerField() { return this.myIntegerField; } - public void setMyIntegerField(Integer myIntegerField) { - this.myIntegerField = myIntegerField; - } -} +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cm">/** MyActionSupport.java **/</span> +<span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyActionSupport</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span> + + <span class="kd">private</span> <span class="n">Integer</span> <span class="n">myIntegerField</span><span class="o">;</span> + + <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getMyIntegerField</span><span class="o">()</span> <span class="o">{</span> + <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">myIntegerField</span><span class="o">;</span> + <span class="o">}</span> + + <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setMyIntegerField</span><span class="o">(</span><span class="n">Integer</span> <span class="n">myIntegerField</span><span class="o">)</span> <span class="o">{</span> + <span class="k">this</span><span class="o">.</span><span class="na">myIntegerField</span> <span class="o">=</span> <span class="n">myIntegerField</span><span class="o">;</span> + <span class="o">}</span> +<span class="o">}</span> </code></pre></div></div> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- MyActionSupport-someAction-validation.xml --> -<validators> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- MyActionSupport-someAction-validation.xml --></span> +<span class="nt"><validators></span> ... - <field name="myIntegerField"> - <field-validator type="conversion"> - <param name="repopulateField">true</param> - <message>Conversion Error (Integer Wanted)</message> - </field-validator> - </field> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myIntegerField"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"conversion"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"repopulateField"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"><message></span>Conversion Error (Integer Wanted)<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> ... -</validators> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/date-validator.html b/output/core-developers/date-validator.html index 115705b..64ac2dc 100644 --- a/output/core-developers/date-validator.html +++ b/output/core-developers/date-validator.html @@ -129,13 +129,22 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/date-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="date-validator">date validator</h1> + <h1 class="no_toc" id="date-validator">date validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> <p>Field Validator that checks if the date supplied is within a specific range.</p> -<p><strong>NOTE:</strong> If no date converter is specified, <code class="highlighter-rouge">XWorkBasicConverter</code> will kick in to do the date conversion, which by default using the <code class="highlighter-rouge">Date.SHORT</code> format using the specified locale else falling back to the system default locale.</p> +<blockquote> + <p>NOTE: If no date converter is specified, <code class="highlighter-rouge">XWorkBasicConverter</code> will kick in to do the date conversion, which +by default using the <code class="highlighter-rouge">Date.SHORT</code> format using the specified locale else falling back to the system default locale.</p> +</blockquote> <h2 id="parameters">Parameters</h2> @@ -148,42 +157,42 @@ <li><code class="highlighter-rouge">maxExpression</code> - expression to calculate the maximum value (if none is specified, it will not be checked).</li> </ul> -<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - using expression can be slightly slower, see the example below.</p> +<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - +using expression can be slightly slower, see the example below.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: Do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator syntax --> - <validator type="date"> - <param name="fieldName">birthday</param> - <param name="min">01/01/1990</param> - <param name="max">01/01/2000</param> - <message>Birthday must be within ${min} and ${max}</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"date"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>birthday<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>01/01/1990<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>01/01/2000<span class="nt"></param></span> + <span class="nt"><message></span>Birthday must be within ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="birthday"> - <field-validator type="date"> - <param name="min">01/01/1990</param> - <param name="max">01/01/2000</param> - <message>Birthday must be within ${min} and ${max}</message> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"birthday"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"date"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>01/01/1990<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>01/01/2000<span class="nt"></param></span> + <span class="nt"><message></span>Birthday must be within ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expression --> - <field name="birthday"> - <field-validator type="date"> - <param name="minExpression">${minValue}</param> <!-- will be evaluated as: Date getMinValue() --> - <param name="maxExpression">${maxValue}</param> <!-- will be evaluated as: Date getMaxValue() --> - <message>Age needs to be between ${min} and ${max}</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"birthday"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"date"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minExpression"</span><span class="nt">></span>${minValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Date getMinValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxExpression"</span><span class="nt">></span>${maxValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Date getMaxValue() --></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/double-validator.html b/output/core-developers/double-validator.html index 0eea904..6e319c9 100644 --- a/output/core-developers/double-validator.html +++ b/output/core-developers/double-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/double-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="double-validator">double validator</h1> + <h1 class="no_toc" id="double-validator">double validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -149,42 +155,44 @@ <li><code class="highlighter-rouge">maxExclusiveExpression</code> - the maximum exclusive value specified as a OGNL expression (if none is specified, it will not be checked).</li> </ul> -<p>You can specify either <code class="highlighter-rouge">minInclusive</code>, <code class="highlighter-rouge">maxInclusive</code>, <code class="highlighter-rouge">minExclusive</code> and <code class="highlighter-rouge">maxExclusive</code> or <code class="highlighter-rouge">minInclusiveExpression</code>, <code class="highlighter-rouge">maxInclusiveExpression</code>, <code class="highlighter-rouge">minExclusiveExpression</code> and <code class="highlighter-rouge">maxExclusiveExpression</c [...] +<p>You can specify either <code class="highlighter-rouge">minInclusive</code>, <code class="highlighter-rouge">maxInclusive</code>, <code class="highlighter-rouge">minExclusive</code> and <code class="highlighter-rouge">maxExclusive</code> or <code class="highlighter-rouge">minInclusiveExpression</code>, +<code class="highlighter-rouge">maxInclusiveExpression</code>, <code class="highlighter-rouge">minExclusiveExpression</code> and <code class="highlighter-rouge">maxExclusiveExpression</code> as a OGNL expression, see example below. +You can always try to mix params but be aware that such behaviour was not tested.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${minInclusiveExpression}</code>, <code class="highlighter-rouge">${maxInclusiveExpression}</code>, <code class="highlighter-rouge">${minExclusiveExpressionExpression}</code> and <code class="highlighter-rouge">${maxExclusive}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${minInclusiveExpression}</code>, <code class="highlighter-rouge">${maxInclusiveExpression}</code>, <code class="highlighter-rouge">${minExclusiveExpressionExpression}</code> +and <code class="highlighter-rouge">${maxExclusive}</code> as an expression as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="double"> - <param name="fieldName">percentage</param> - <param name="minInclusive">20.1</param> - <param name="maxInclusive">50.1</param> - <message>Age needs to be between ${minInclusive} and ${maxInclusive} (inclusive)</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"double"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>percentage<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minInclusive"</span><span class="nt">></span>20.1<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxInclusive"</span><span class="nt">></span>50.1<span class="nt"></param></span> + <span class="nt"><message></span>Age needs to be between ${minInclusive} and ${maxInclusive} (inclusive)<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="percentage"> - <field-validator type="double"> - <param name="minExclusive">0.123</param> - <param name="maxExclusive">99.98</param> - <message>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)</message> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"percentage"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"double"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minExclusive"</span><span class="nt">></span>0.123<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxExclusive"</span><span class="nt">></span>99.98<span class="nt"></param></span> + <span class="nt"><message></span>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expression --> - <field name="percentage"> - <field-validator type="double"> - <param name="minExclusiveExpression">${minExclusiveValue}</param> <!-- will be evaluated as: Double getMinExclusiveValue() --> - <param name="maxExclusiveExpression">${maxExclusiveValue}</param> <!-- will be evaluated as: Double getMaxExclusiveValue() --> - <message>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"percentage"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"double"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minExclusiveExpression"</span><span class="nt">></span>${minExclusiveValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Double getMinExclusiveValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxExclusiveExpression"</span><span class="nt">></span>${maxExclusiveValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Double getMaxExclusiveValue() --></span> + <span class="nt"><message></span>Percentage needs to be between ${minExclusive} and ${maxExclusive} (exclusive)<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/email-validator.html b/output/core-developers/email-validator.html index b3b8940..742f262 100644 --- a/output/core-developers/email-validator.html +++ b/output/core-developers/email-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/email-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="email-validator">email validator</h1> + <h1 class="no_toc" id="email-validator">email validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -137,9 +143,13 @@ <p>The regular expression used to validate that the string is an email address is:</p> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>\\b^['_a-z0-9-\\+](\\.['_a-z0-9-\\+])@[a-z0-9-](\\.[a-z0-9-])\\.([a-z]{2,6})$\\b +<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>\\b^['_a-z0-9-\\+]+(\\.['_a-z0-9-\\+]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,6})$\\b </code></pre></div></div> +<blockquote> + <p>This Regex can change, please always check in the <a href="https://github.com/apache/struts/blob/master/core/src/main/java/com/opensymphony/xwork2/validator/validators/EmailValidator.java#L83">source code</a></p> +</blockquote> + <p>You can also specify <code class="highlighter-rouge">expression</code>, <code class="highlighter-rouge">caseSensitive</code> and <code class="highlighter-rouge">trim</code> params as a OGNL expression, see the example below.</p> <h2 id="parameters">Parameters</h2> @@ -151,38 +161,38 @@ <p>Check also documentation of the <code class="highlighter-rouge">RegexpValidator</code> for more details - the EmailValidator is based on it.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${regexExpression}</code>, <code class="highlighter-rouge">${caseSensitiveExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${regexExpression}</code>, <code class="highlighter-rouge">${caseSensitiveExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression +as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- Plain Validator Syntax --> -<validators> - <validator type="email"> - <param name="fieldName">myEmail</param> - <message>Must provide a valid email</message> - </validator> -</validators> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Plain Validator Syntax --></span> +<span class="nt"><validators></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"email"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myEmail<span class="nt"></param></span> + <span class="nt"><message></span>Must provide a valid email<span class="nt"></message></span> + <span class="nt"></validator></span> +<span class="nt"></validators></span> -<!-- Field Validator Syntax --> -<field name="myEmail"> - <field-validator type="email"> - <message>Must provide a valid email</message> - </field-validator> -</field> +<span class="c"><!-- Field Validator Syntax --></span> +<span class="nt"><field</span> <span class="na">name=</span><span class="s">"myEmail"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"email"</span><span class="nt">></span> + <span class="nt"><message></span>Must provide a valid email<span class="nt"></message></span> + <span class="nt"></field-validator></span> +<span class="nt"></field></span> -<!-- Field Validator Syntax with expressions --> -<!-- Only available when used with xml based configuration, if you want to have the same - flexibility with annotations use @RegexFieldValidator instead --> -<field name="myEmail"> - <field-validator type="email"> - <param name="regexExpression">${emailPattern}</param> <!-- will be evaluated as: String getEmailPattern() --> - <param name="caseSensitiveExpression">${emailCaseSensitive}</param> <!-- will be evaluated as: boolean getEmailCaseSensitive() --> - <param name="trimExpression">${trimEmail}</param> <!-- will be evaluated as: boolean getTrimEmail() --> - <message>Must provide a valid email</message> - </field-validator> -</field> +<span class="c"><!-- Field Validator Syntax with expressions --></span> +<span class="c"><!-- Only available when used with xml based configuration, if you want to have the same + flexibility with annotations use @RegexFieldValidator instead --></span> +<span class="nt"><field</span> <span class="na">name=</span><span class="s">"myEmail"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"email"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"regexExpression"</span><span class="nt">></span>${emailPattern}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: String getEmailPattern() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"caseSensitiveExpression"</span><span class="nt">></span>${emailCaseSensitive}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getEmailCaseSensitive() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trimExpression"</span><span class="nt">></span>${trimEmail}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getTrimEmail() --></span> + <span class="nt"><message></span>Must provide a valid email<span class="nt"></message></span> + <span class="nt"></field-validator></span> +<span class="nt"></field></span> </code></pre></div></div> </section> diff --git a/output/core-developers/expression-validator.html b/output/core-developers/expression-validator.html index ae4523c..e2e2ed1 100644 --- a/output/core-developers/expression-validator.html +++ b/output/core-developers/expression-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/expression-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="expression-validator">expression validator</h1> + <h1 class="no_toc" id="expression-validator">expression validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -143,12 +149,12 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <validator type="expression"> - <param name="expression"> .... </param> - <message>Failed to meet Ognl Expression .... </message> - </validator> -</validators> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"expression"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"expression"</span><span class="nt">></span> .... <span class="nt"></param></span> + <span class="nt"><message></span>Failed to meet Ognl Expression .... <span class="nt"></message></span> + <span class="nt"></validator></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/fieldexpression-validator.html b/output/core-developers/fieldexpression-validator.html index efb6619..3f77991 100644 --- a/output/core-developers/fieldexpression-validator.html +++ b/output/core-developers/fieldexpression-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/fieldexpression-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="fieldexpression-validator">fieldexpression validator</h1> + <h1 class="no_toc" id="fieldexpression-validator">fieldexpression validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -144,23 +150,23 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- Plain Validator Syntax --> -<validators> - <!-- Plain Validator Syntax --> - <validator type="fieldexpression"> - <param name="fieldName">myField</param> - <param name="expression"><![CDATA[#myCreditLimit > #myGirfriendCreditLimit]]></param> - <message>My credit limit should be MORE than my girlfriend</message> - <validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Plain Validator Syntax --></span> +<span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"fieldexpression"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myField<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"expression"</span><span class="nt">></span><span class="cp"><![CDATA[#myCreditLimit > #myGirfriendCreditLimit]]></span><span class="nt"></param></span> + <span class="nt"><message></span>My credit limit should be MORE than my girlfriend<span class="nt"></message></span> + <span class="nt"><validator></span> - <!-- Field Validator Syntax --> - <field name="myField"> - <field-validator type="fieldexpression"> - <param name="expression"><![CDATA[#myCreditLimit > #myGirfriendCreditLimit]]></param> - <message>My credit limit should be MORE than my girlfriend</message> - </field-validator> - </field> -</vaidators> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myField"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"fieldexpression"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"expression"</span><span class="nt">></span><span class="cp"><![CDATA[#myCreditLimit > #myGirfriendCreditLimit]]></span><span class="nt"></param></span> + <span class="nt"><message></span>My credit limit should be MORE than my girlfriend<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/int-validator.html b/output/core-developers/int-validator.html index aa3b230..cbd7b5b 100644 --- a/output/core-developers/int-validator.html +++ b/output/core-developers/int-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/int-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="int-validator">int validator</h1> + <h1 class="no_toc" id="int-validator">int validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -146,42 +152,42 @@ <li><code class="highlighter-rouge">maxExpression</code> - expression to calculate the maximum value (if none is specified, it will not be checked)</li> </ul> -<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - using expression can be slightly slower, see the example below.</p> +<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - using +expression can be slightly slower, see the example below.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="int"> - <param name="fieldName">age</param> - <param name="min">20</param> - <param name="max">50</param> - <message>Age needs to be between ${min} and ${max}</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"int"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>age<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>20<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>50<span class="nt"></param></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="age"> - <field-validator type="int"> - <param name="min">20</param> - <param name="max">50</param> - <message>Age needs to be between ${min} and ${max}</message> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"age"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"int"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>20<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>50<span class="nt"></param></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expression --> - <field name="age"> - <field-validator type="int"> - <param name="minExpression">${minValue}</param> <!-- will be evaluated as: Integer getMinValue() --> - <param name="maxExpression">${maxValue}</param> <!-- will be evaluated as: Integer getMaxValue() --> - <message>Age needs to be between ${min} and ${max}</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"age"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"int"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minExpression"</span><span class="nt">></span>${minValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Integer getMinValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxExpression"</span><span class="nt">></span>${maxValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Integer getMaxValue() --></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/namespace-annotation.html b/output/core-developers/namespace-annotation.html index 31aa14d..9a16f73 100644 --- a/output/core-developers/namespace-annotation.html +++ b/output/core-developers/namespace-annotation.html @@ -133,7 +133,8 @@ <h2 id="namespace-annotation-1">Namespace Annotation</h2> -<p>The <code class="highlighter-rouge">@Namespace</code> annotation allows the definition of an Action’s namespace in the <code class="highlighter-rouge">Action</code> class rather than based on <a href="zero-configuration.html">Zero Configuration</a>’s conventions.</p> +<p>The <code class="highlighter-rouge">@Namespace</code> annotation allows the definition of an Action’s namespace in the <code class="highlighter-rouge">Action</code> class rather than based +on <a href="../plugins/convention/">Convention Plugin</a>’s conventions.</p> <h3 id="usage">Usage</h3> diff --git a/output/core-developers/regex-validator.html b/output/core-developers/regex-validator.html index ca285c6..a3a7d6b 100644 --- a/output/core-developers/regex-validator.html +++ b/output/core-developers/regex-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/regex-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="regex-validator">regex validator</h1> + <h1 class="no_toc" id="regex-validator">regex validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -150,35 +156,35 @@ <p>You can mix normal params with expression aware params but thus was not tested.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${regexExpression}</code>, <code class="highlighter-rouge">${caseSensitiveExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${regexExpression}</code>, <code class="highlighter-rouge">${caseSensitiveExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression +as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="regex"> - <param name="fieldName">myStrangePostcode</param> - <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"regex"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myStrangePostcode<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"regex"</span><span class="nt">></span><span class="cp"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></span><span class="nt"></param></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="myStrangePostcode"> - <field-validator type="regex"> - <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myStrangePostcode"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"regex"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"regex"</span><span class="nt">></span><span class="cp"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></span><span class="nt"></param></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expressions --> - <field name="myStrangePostcode"> - <field-validator type="regex"> - <param name="regexExpression">${regexValue}</param> <!-- will be evaluated as: String getRegexValue() --> - <param name="caseSensitiveExpression">${caseSensitiveValue}</param> <!-- will be evaluated as: boolean getCaseSensitiveValue() --> - <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() --> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expressions --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myStrangePostcode"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"regex"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"regexExpression"</span><span class="nt">></span>${regexValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: String getRegexValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"caseSensitiveExpression"</span><span class="nt">></span>${caseSensitiveValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getCaseSensitiveValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trimExpression"</span><span class="nt">></span>${trimValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getTrimValue() --></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/required-validator.html b/output/core-developers/required-validator.html index 249007c..bddf05a 100644 --- a/output/core-developers/required-validator.html +++ b/output/core-developers/required-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/required-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="required-validator">required validator</h1> + <h1 class="no_toc" id="required-validator">required validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -143,21 +149,21 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="required"> - <param name="fieldName">username</param> - <message>username must not be null</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"required"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>username<span class="nt"></param></span> + <span class="nt"><message></span>username must not be null<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="username"> - <field-validator type="required"> - <message>username must not be null</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"username"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"required"</span><span class="nt">></span> + <span class="nt"><message></span>username must not be null<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/requiredstring-validator.html b/output/core-developers/requiredstring-validator.html index 90112c9..38b2927 100644 --- a/output/core-developers/requiredstring-validator.html +++ b/output/core-developers/requiredstring-validator.html @@ -129,11 +129,18 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/requiredstring-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="requiredstring-validator">requiredstring validator</h1> + <h1 class="no_toc" id="requiredstring-validator">requiredstring validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> -<p>RequiredStringValidator checks that a String field is non-null and has a length > 0. (i.e. it isn’t “”). The <code class="highlighter-rouge">trim</code> parameter determines whether it will <code class="highlighter-rouge">String#trim()</code> the String before performing the length check. If unspecified, the String will be trimmed.</p> +<p>RequiredStringValidator checks that a String field is non-null and has a length > 0. (i.e. it isn’t “”). The <code class="highlighter-rouge">trim</code> parameter +determines whether it will <code class="highlighter-rouge">String#trim()</code> the String before performing the length check. If unspecified, the String will be trimmed.</p> <h2 id="parameters">Parameters</h2> @@ -145,30 +152,30 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain-Validator Syntax --> - <validator type="requiredstring"> - <param name="fieldName">username</param> - <param name="trim">true</param> - <message>username is required</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain-Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"requiredstring"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>username<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trim"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"><message></span>username is required<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field-Validator Syntax --> - <field name="username"> - <field-validator type="requiredstring"> - <param name="trim">true</param> - <message>username is required</message> - </field-validator> - </field> + <span class="c"><!-- Field-Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"username"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"requiredstring"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trim"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"><message></span>username is required<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field-Validator Syntax with expression --> - <field name="username"> - <field-validator type="requiredstring"> - <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() --> - <message>username is required</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field-Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"username"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"requiredstring"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trimExpression"</span><span class="nt">></span>${trimValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getTrimValue() --></span> + <span class="nt"><message></span>username is required<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/short-validator.html b/output/core-developers/short-validator.html index 6eee630..f269108 100644 --- a/output/core-developers/short-validator.html +++ b/output/core-developers/short-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/short-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="short-validator">short validator</h1> + <h1 class="no_toc" id="short-validator">short validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -146,42 +152,42 @@ <li><code class="highlighter-rouge">maxExpression</code> - expression to calculate the maximum value (if none is specified, it will not be checked).</li> </ul> -<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - using expression can be slightly slower, see the example below.</p> +<p>You can either use the <code class="highlighter-rouge">min</code> / <code class="highlighter-rouge">max</code> value or <code class="highlighter-rouge">minExpression</code> / <code class="highlighter-rouge">maxExpression</code> (when <code class="highlighter-rouge">parse</code> is set to <code class="highlighter-rouge">true</code>) - using +expression can be slightly slower, see the example below.</p> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${minExpression}</code> and <code class="highlighter-rouge">${maxExpression}</code> as an expression as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="short"> - <param name="fieldName">age</param> - <param name="min">20</param> - <param name="max">50</param> - <message>Age needs to be between ${min} and ${max}</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"short"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>age<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>20<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>50<span class="nt"></param></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="age"> - <field-validator type="short"> - <param name="min">20</param> - <param name="max">50</param> - <message>Age needs to be between ${min} and ${max}</message> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"age"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"short"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"min"</span><span class="nt">></span>20<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"max"</span><span class="nt">></span>50<span class="nt"></param></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expression --> - <field name="age"> - <field-validator type="short"> - <param name="minExpression">${minValue}</param> <!-- will be evaluated as: Short getMinValue() --> - <param name="maxExpression">${maxValue}</param> <!-- will be evaluated as: Short getMaxValue() --> - <message>Age needs to be between ${min} and ${max}</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"age"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"short"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minExpression"</span><span class="nt">></span>${minValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Short getMinValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxExpression"</span><span class="nt">></span>${maxValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Short getMaxValue() --></span> + <span class="nt"><message></span>Age needs to be between ${min} and ${max}<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/stringlength-validator.html b/output/core-developers/stringlength-validator.html index a694a9c..48ac93c 100644 --- a/output/core-developers/stringlength-validator.html +++ b/output/core-developers/stringlength-validator.html @@ -129,11 +129,20 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/stringlength-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="stringlength-validator">stringlength validator</h1> + <h1 class="no_toc" id="stringlength-validator">stringlength validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> -<p>StringLengthFieldValidator checks that a String field is of a certain length. If the <code class="highlighter-rouge">minLength</code> parameter is specified, it will make sure that the String has at least that many characters. If the <code class="highlighter-rouge">maxLength</code> parameter is specified, it will make sure that the String has at most that many characters. The <code class="highlighter-rouge">trim</code> parameter determines whether it will <code class="highlighter-roug [...] +<p>StringLengthFieldValidator checks that a String field is of a certain length. If the <code class="highlighter-rouge">minLength</code> parameter is specified, +it will make sure that the String has at least that many characters. If the <code class="highlighter-rouge">maxLength</code> parameter is specified, it will +make sure that the String has at most that many characters. The <code class="highlighter-rouge">trim</code> parameter determines whether it will <code class="highlighter-rouge">String#trim()</code> +the String before performing the length check. If unspecified, the String will be trimmed.</p> <h2 id="parameters">Parameters</h2> @@ -148,42 +157,42 @@ </ul> <blockquote> - <p>Warning -Do not use <code class="highlighter-rouge">${minLengthExpression}</code>, <code class="highlighter-rouge">${maxLengthExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression as this will turn into infinitive loop!</p> + <p>Warning: do not use <code class="highlighter-rouge">${minLengthExpression}</code>, <code class="highlighter-rouge">${maxLengthExpression}</code> and <code class="highlighter-rouge">${trimExpression}</code> as an expression +as this will turn into infinitive loop!</p> </blockquote> <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="stringlength"> - <param name="fieldName">myPurchaseCode</param> - <param name="minLength">10</param> - <param name="maxLength">10</param> - <param name="trim">true</param> - <message>Your purchase code needs to be 10 characters long</message> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"stringlength"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myPurchaseCode<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minLength"</span><span class="nt">></span>10<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxLength"</span><span class="nt">></span>10<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trim"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"><message></span>Your purchase code needs to be 10 characters long<span class="nt"></message></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="myPurchaseCode"> - <field-validator type="stringlength"> - <param name="minLength">10</param> - <param name="maxLength">10</param> - <param name="trim">true</param> - <message>Your purchase code needs to be 10 characters long</message> - </field-validator> - </field> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myPurchaseCode"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"stringlength"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minLength"</span><span class="nt">></span>10<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxLength"</span><span class="nt">></span>10<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trim"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"><message></span>Your purchase code needs to be 10 characters long<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> - <!-- Field Validator Syntax with expression --> - <field name="myPurchaseCode"> - <field-validator type="stringlength"> - <param name="minLengthExpression">${minLengthValue}</param> <!-- will be evaluated as: Integer getMinLengthValue() --> - <param name="maxLengthExpression">${maxLengthValue}</param> <!-- will be evaluated as: Integer getMaxLengthValue() --> - <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() --> - <message>Your purchase code needs to be 10 characters long</message> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax with expression --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myPurchaseCode"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"stringlength"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"minLengthExpression"</span><span class="nt">></span>${minLengthValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Integer getMinLengthValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"maxLengthExpression"</span><span class="nt">></span>${maxLengthValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: Integer getMaxLengthValue() --></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"trimExpression"</span><span class="nt">></span>${trimValue}<span class="nt"></param></span> <span class="c"><!-- will be evaluated as: boolean getTrimValue() --></span> + <span class="nt"><message></span>Your purchase code needs to be 10 characters long<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/url-validator.html b/output/core-developers/url-validator.html index e6c8f86..67b1052 100644 --- a/output/core-developers/url-validator.html +++ b/output/core-developers/url-validator.html @@ -129,7 +129,13 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/url-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="url-validator">url validator</h1> + <h1 class="no_toc" id="url-validator">url validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> @@ -145,23 +151,23 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="url"> - <param name="fieldName">myHomePage</param> - <message>Invalid homepage url</message> - </validator> - - <!-- Field Validator Syntax --> - <field name="myHomepage"> - <field-validator type="url"> - <message>Invalid homepage url</message> - </field-validator> - </field> -</validators> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"url"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>myHomePage<span class="nt"></param></span> + <span class="nt"><message></span>Invalid homepage url<span class="nt"></message></span> + <span class="nt"></validator></span> + + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"myHomepage"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"url"</span><span class="nt">></span> + <span class="nt"><message></span>Invalid homepage url<span class="nt"></message></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> -<p>See more details in <a href="url-validator-annotation.html">UrlValidator Annotation</a></p> +<p>See more details in <a href="url-validator-annotation">UrlValidator Annotation</a></p> </section> </article> diff --git a/output/core-developers/using-field-validators.html b/output/core-developers/using-field-validators.html index ce17fe5..6146af8 100644 --- a/output/core-developers/using-field-validators.html +++ b/output/core-developers/using-field-validators.html @@ -129,57 +129,61 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/using-field-validators.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="using-field-validators">Using Field Validators</h1> + <h1 class="no_toc" id="using-field-validators">Using Field Validators</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a> <ul> + <li><a href="#step-1" id="markdown-toc-step-1">Step 1</a></li> + <li><a href="#step-2" id="markdown-toc-step-2">Step 2</a></li> + <li><a href="#step-3" id="markdown-toc-step-3">Step 3</a></li> + </ul> + </li> +</ul> <h2 id="description">Description</h2> <p>The followings show a simple example using Struts’ Field Validators</p> -<p><strong>Step 1</strong></p> +<h3 id="step-1">Step 1</h3> <p>Create the jsp page</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> - <span class="nt"><h3></span>All Field Errors Will Appear Here<span class="nt"></h3></span> - <span class="nt"><s:fielderror/></span> - <span class="nt"><hr/></span> - - <span class="nt"><h3></span>Field Error due to 'Required String Validator Field' Will Appear Here<span class="nt"></h3></span> - <span class="nt"><s:fielderror></span> - <span class="nt"><s:param</span> <span class="na">value=</span><span class="s">"%{'requiredStringValidatorField'}"</span><span class="nt">/></span> - <span class="nt"></s:fielderror></span> - <span class="nt"><hr/></span> - - <span class="nt"><h3></span>Field Error due to 'String Length Validator Field' Will Appear Here<span class="nt"></h3></span> - <span class="nt"><s:fielderror></span> - <span class="nt"><s:param></span>stringLengthValidatorField<span class="nt"></s:param></span> - <span class="nt"></s:fielderror></span> - <span class="nt"><hr/></span> - - <span class="nt"><s:form</span> <span class="na">action=</span><span class="s">"submitFieldValidatorsExamples"</span> <span class="na">namespace=</span><span class="s">"/validation"</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">theme=</span><span class="s">"xhtml"</span><span class="nt">></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Required Validator Field"</span> <span class="na">name=</span><span class="s">"requiredValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Required String Validator Field"</span> <span class="na">name=</span><span class="s">"requiredStringValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Integer Validator Field"</span> <span class="na">name=</span><span class="s">"integerValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Date Validator Field"</span> <span class="na">name=</span><span class="s">"dateValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Email Validator Field"</span> <span class="na">name=</span><span class="s">"emailValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"URL Validator Field"</span> <span class="na">name=</span><span class="s">"urlValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"String Length Validator Field"</span> <span class="na">name=</span><span class="s">"stringLengthValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Regex Validator Field"</span> <span class="na">name=</span><span class="s">"regexValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Field Expression Validator Field"</span> <span class="na">name=</span><span class="s">"fieldExpressionValidatorField"</span><span class="nt">/></span> - <span class="nt"><s:submit</span> <span class="na">label=</span><span class="s">"Submit"</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/></span> - <span class="nt"></s:form></span> - - +<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code> +<span class="nt"><h3></span>All Field Errors Will Appear Here<span class="nt"></h3></span> +<span class="nt"><s:fielderror/></span> +<span class="nt"><hr/></span> + +<span class="nt"><h3></span>Field Error due to 'Required String Validator Field' Will Appear Here<span class="nt"></h3></span> +<span class="nt"><s:fielderror></span> + <span class="nt"><s:param</span> <span class="na">value=</span><span class="s">"%{'requiredStringValidatorField'}"</span><span class="nt">/></span> +<span class="nt"></s:fielderror></span> +<span class="nt"><hr/></span> + +<span class="nt"><h3></span>Field Error due to 'String Length Validator Field' Will Appear Here<span class="nt"></h3></span> +<span class="nt"><s:fielderror></span> + <span class="nt"><s:param></span>stringLengthValidatorField<span class="nt"></s:param></span> +<span class="nt"></s:fielderror></span> +<span class="nt"><hr/></span> + +<span class="nt"><s:form</span> <span class="na">action=</span><span class="s">"submitFieldValidatorsExamples"</span> <span class="na">namespace=</span><span class="s">"/validation"</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">theme=</span><span class="s">"xhtml"</span><span class="nt">></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Required Validator Field"</span> <span class="na">name=</span><span class="s">"requiredValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Required String Validator Field"</span> <span class="na">name=</span><span class="s">"requiredStringValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Integer Validator Field"</span> <span class="na">name=</span><span class="s">"integerValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Date Validator Field"</span> <span class="na">name=</span><span class="s">"dateValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Email Validator Field"</span> <span class="na">name=</span><span class="s">"emailValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"URL Validator Field"</span> <span class="na">name=</span><span class="s">"urlValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"String Length Validator Field"</span> <span class="na">name=</span><span class="s">"stringLengthValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Regex Validator Field"</span> <span class="na">name=</span><span class="s">"regexValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">label=</span><span class="s">"Field Expression Validator Field"</span> <span class="na">name=</span><span class="s">"fieldExpressionValidatorField"</span><span class="nt">/></span> + <span class="nt"><s:submit</span> <span class="na">label=</span><span class="s">"Submit"</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/></span> +<span class="nt"></s:form></span> </code></pre></div></div> -<p><strong>Step 2</strong></p> +<h3 id="step-2">Step 2</h3> <p>Create the action class</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="o">*/</span> -<span class="kd">public</span> <span class="kd">class</span> <span class="nc">FieldValidatorsExampleAction</span> <span class="kd">extends</span> <span class="n">AbstractValidationActionSupport</span> <span class="o">{</span> - - <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">long</span> <span class="n">serialVersionUID</span> <span class="o">=</span> <span class="o">-</span><span class="mi">4829381083003175423L</span><span class="o">;</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">FieldValidatorsExampleAction</span> <span class="kd">extends</span> <span class="n">AbstractValidationActionSupport</span> <span class="o">{</span> <span class="kd">private</span> <span class="n">String</span> <span class="n">requiredValidatorField</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> <span class="kd">private</span> <span class="n">String</span> <span class="n">requiredStringValidatorField</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span> @@ -265,17 +269,13 @@ <span class="k">this</span><span class="o">.</span><span class="na">urlValidatorField</span> <span class="o">=</span> <span class="n">urlValidatorField</span><span class="o">;</span> <span class="o">}</span> <span class="o">}</span> - -<span class="o">/**</span> - </code></pre></div></div> -<p><strong>Step 3</strong></p> +<h3 id="step-3">Step 3</h3> -<p>Create the validator.xml.</p> +<p>Create the <code class="highlighter-rouge">validator.xml</code>.</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="nt"><validators></span> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> <span class="nt"><field</span> <span class="na">name=</span><span class="s">"requiredValidatorField"</span><span class="nt">></span> <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"required"</span><span class="nt">></span> <span class="nt"><message></span><span class="cp"><![CDATA[ required ]]></span><span class="nt"></message></span> @@ -322,7 +322,7 @@ <span class="nt"><field</span> <span class="na">name=</span><span class="s">"regexValidatorField"</span><span class="nt">></span> <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"regex"</span><span class="nt">></span> <span class="nt"><param</span> <span class="na">name=</span><span class="s">"regex"</span><span class="nt">></span><span class="cp"><![CDATA[ [^<>]+ ]]></span><span class="nt"></param></span> - <span class="nt"><message></span><span class="cp"><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></span><span class="nt"></message></span> + <span class="nt"><message></span><span class="cp"><![CDATA[ regexValidatorField must match a regexp (.*.txt) if specified ]]></span><span class="nt"></message></span> <span class="nt"></field-validator></span> <span class="nt"></field></span> <span class="nt"><field</span> <span class="na">name=</span><span class="s">"fieldExpressionValidatorField"</span><span class="nt">></span> @@ -332,11 +332,8 @@ <span class="nt"></field-validator></span> <span class="nt"></field></span> <span class="nt"></validators></span> - - </code></pre></div></div> - </section> </article> diff --git a/output/core-developers/using-visitor-field-validator.html b/output/core-developers/using-visitor-field-validator.html index a18aa03..ba7ee3b 100644 --- a/output/core-developers/using-visitor-field-validator.html +++ b/output/core-developers/using-visitor-field-validator.html @@ -129,37 +129,40 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/using-visitor-field-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="using-visitor-field-validator">Using Visitor Field Validator</h1> + <h1 class="no_toc" id="using-visitor-field-validator">Using Visitor Field Validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a> <ul> + <li><a href="#step-1" id="markdown-toc-step-1">Step 1</a></li> + <li><a href="#step-2" id="markdown-toc-step-2">Step 2</a></li> + <li><a href="#step-3" id="markdown-toc-step-3">Step 3</a></li> + </ul> + </li> +</ul> <h2 id="description">Description</h2> <p>The followings show a simple example using Webwork’s Field Validators</p> -<p><strong>Step 1</strong></p> +<h3 id="step-1">Step 1</h3> <p>Create the jsp page.</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> - <span class="nt"><s:fielderror</span> <span class="na">cssClass=</span><span class="s">"alert alert-error"</span><span class="nt">/></span> - - <span class="nt"><s:form</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">action=</span><span class="s">"submitVisitorValidatorsExamples"</span> <span class="na">namespace=</span><span class="s">"/validation"</span><span class="nt">></span> - <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.name"</span> <span class="na">label=</span><span class="s">"User Name"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.age"</span> <span class="na">label=</span><span class="s">"User Age"</span><span class="nt">/></span> - <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.birthday"</span> <span class="na">label=</span><span class="s">"Birthday"</span><span class="nt">/></span> - <span class="nt"><s:submit</span> <span class="na">label=</span><span class="s">"Submit"</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/></span> - <span class="nt"></s:form></span> - +<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><s:fielderror</span> <span class="na">cssClass=</span><span class="s">"alert alert-error"</span><span class="nt">/></span> +<span class="nt"><s:form</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">action=</span><span class="s">"submitVisitorValidatorsExamples"</span> <span class="na">namespace=</span><span class="s">"/validation"</span><span class="nt">></span> + <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.name"</span> <span class="na">label=</span><span class="s">"User Name"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.age"</span> <span class="na">label=</span><span class="s">"User Age"</span><span class="nt">/></span> + <span class="nt"><s:textfield</span> <span class="na">name=</span><span class="s">"user.birthday"</span> <span class="na">label=</span><span class="s">"Birthday"</span><span class="nt">/></span> + <span class="nt"><s:submit</span> <span class="na">label=</span><span class="s">"Submit"</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/></span> +<span class="nt"></s:form></span> </code></pre></div></div> -<p><strong>Step 2</strong></p> +<h3 id="step-2">Step 2</h3> <p>Create the action class.</p> -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="kd">public</span> <span class="kd">class</span> <span class="nc">VisitorValidatorsExampleAction</span> <span class="kd">extends</span> <span class="n">AbstractValidationActionSupport</span> <span class="o">{</span> - - <span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">long</span> <span class="n">serialVersionUID</span> <span class="o">=</span> <span class="mi">4375454086939598216L</span><span class="o">;</span> +<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">VisitorValidatorsExampleAction</span> <span class="kd">extends</span> <span class="n">AbstractValidationActionSupport</span> <span class="o">{</span> <span class="kd">private</span> <span class="n">User</span> <span class="n">user</span><span class="o">;</span> @@ -171,42 +174,23 @@ <span class="k">this</span><span class="o">.</span><span class="na">user</span> <span class="o">=</span> <span class="n">user</span><span class="o">;</span> <span class="o">}</span> <span class="o">}</span> - - - </code></pre></div></div> -<p><strong>Step 3</strong></p> - -<p>Create the validator.xml.</p> - -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> +<h3 id="step-3">Step 3</h3> +<p>Create the <code class="highlighter-rouge">validator.xml</code>.</p> -<span class="nt"><validators></span> - +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> <span class="nt"><field</span> <span class="na">name=</span><span class="s">"user"</span><span class="nt">></span> - <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"visitor"</span><span class="nt">></span> - <span class="nt"><param</span> <span class="na">name=</span><span class="s">"context"</span><span class="nt">></span>userContext<span class="nt"></param></span> - <span class="nt"><param</span> <span class="na">name=</span><span class="s">"appendPrefix"</span><span class="nt">></span>true<span class="nt"></param></span> - <span class="nt"><message></span>User:<span class="nt"></message></span> - <span class="nt"></field-validator></span> - <span class="nt"></field></span> - <span class="nt"></validators></span> - - - - </code></pre></div></div> - </section> </article> diff --git a/output/core-developers/validation.html b/output/core-developers/validation.html index 4e6aabe..63887eb 100644 --- a/output/core-developers/validation.html +++ b/output/core-developers/validation.html @@ -173,7 +173,7 @@ for the action.</p> <h2 id="using-annotations">Using Annotations</h2> -<p><a href="validation-annotation.html">Annotations</a> can be used as an alternative to XML for validation.</p> +<p><a href="validation-annotation">Annotations</a> can be used as an alternative to XML for validation.</p> <h2 id="bean-validation">Bean Validation</h2> @@ -184,15 +184,15 @@ See the <a href="../plugins/">Plugin Page</a> for details.</p> <p>In all examples given here, the validation message displayed is given in plain English - to internationalize the message, put the string in a properties file and use a property key instead, specified by the ‘key’ attribute. It will be looked -up by the framework (see <a href="localization.html">Localization</a>).</p> +up by the framework (see <a href="localization">Localization</a>).</p> <ol> - <li><a href="basic-validation.html">Basic Validation</a></li> - <li><a href="client-side-validation.html">Client-side Validation</a></li> + <li><a href="basic-validation">Basic Validation</a></li> + <li><a href="client-side-validation">Client-side Validation</a></li> <li><em>AJAX Validation</em></li> - <li><a href="using-field-validators.html">Using Field Validators</a></li> - <li><a href="using-non-field-validators.html">Using Non Field Validators</a></li> - <li><a href="using-visitor-field-validator.html">Using Visitor Field Validator</a></li> + <li><a href="using-field-validators">Using Field Validators</a></li> + <li><a href="using-non-field-validators">Using Non Field Validators</a></li> + <li><a href="using-visitor-field-validator">Using Visitor Field Validator</a></li> <li><em>How do we repopulate controls when validation fails</em> (FAQ entry)</li> </ol> @@ -203,21 +203,21 @@ as it facilitates grouping of field-validators according to fields. This is very to have many field-validators which is almost always the case.</p> <ol> - <li><a href="conversion-validator.html">conversion validator</a></li> - <li><a href="date-validator.html">date validator</a></li> - <li><a href="double-validator.html">double validator</a></li> - <li><a href="email-validator.html">email validator</a></li> - <li><a href="expression-validator.html">expression validator</a></li> - <li><a href="fieldexpression-validator.html">fieldexpression validator</a></li> - <li><a href="int-validator.html">int validator</a></li> - <li><a href="regex-validator.html">regex validator</a></li> - <li><a href="required-validator.html">required validator</a></li> - <li><a href="requiredstring-validator.html">requiredstring validator</a></li> - <li><a href="short-validator.html">short validator</a></li> - <li><a href="stringlength-validator.html">stringlength validator</a></li> - <li><a href="url-validator.html">url validator</a></li> - <li><a href="visitor-validator.html">visitor validator</a></li> - <li><a href="conditionalvisitor-validator.html">conditionalvisitor validator</a></li> + <li><a href="conversion-validator">conversion validator</a></li> + <li><a href="date-validator">date validator</a></li> + <li><a href="double-validator">double validator</a></li> + <li><a href="email-validator">email validator</a></li> + <li><a href="expression-validator">expression validator</a></li> + <li><a href="fieldexpression-validator">fieldexpression validator</a></li> + <li><a href="int-validator">int validator</a></li> + <li><a href="regex-validator">regex validator</a></li> + <li><a href="required-validator">required validator</a></li> + <li><a href="requiredstring-validator">requiredstring validator</a></li> + <li><a href="short-validator">short validator</a></li> + <li><a href="stringlength-validator">stringlength validator</a></li> + <li><a href="url-validator">url validator</a></li> + <li><a href="visitor-validator">visitor validator</a></li> + <li><a href="conditionalvisitor-validator">conditionalvisitor validator</a></li> </ol> <h2 id="registering-validators">Registering Validators</h2> @@ -286,7 +286,7 @@ as described in the examples found here.</p> <blockquote> <p><strong>Struts 2.0.7 and Prior</strong> The <code class="highlighter-rouge">validators.xml</code> containing custom validators needs to contain a copy of the default validators. No DTD was used -in <code class="highlighter-rouge">validators.xml</code>. See: <a href="http://struts.apache.org/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases">http://struts.apache.org/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases</a></p> +in <code class="highlighter-rouge">validators.xml</code>. See: <a href="https://cwiki.apache.org/confluence/display/WW/Release+Notes+2.0.8#ReleaseNotes2.0.8-MigrationfrompreviousReleases">Release Notes 2.0.8</a></p> </blockquote> <h2 id="turning-on-validation">Turning on Validation</h2> @@ -536,8 +536,8 @@ by looking at the validation class that the validator’s programmer chose to im <p>Non-Field-Validator: The <code class="highlighter-rouge"><validator></code> element allows you to declare both types of validators (either a plain Validator a field-specific FieldValidator).</p> -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validator</span> <span class="na">type=</span><span class="s">"expression> - <param name="</span><span class="err">expression"</span><span class="nt">></span>foo gt bar<span class="nt"></param></span> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validator</span> <span class="na">type=</span><span class="s">"expression"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"expression"</span><span class="nt">></span>foo gt bar<span class="nt"></param></span> <span class="nt"><message></span>foo must be great than bar.<span class="nt"></message></span> <span class="nt"></validator></span> </code></pre></div></div> diff --git a/output/core-developers/visitor-validator.html b/output/core-developers/visitor-validator.html index 3c7ebcf..747db86 100644 --- a/output/core-developers/visitor-validator.html +++ b/output/core-developers/visitor-validator.html @@ -129,11 +129,20 @@ <section class="col-md-12"> <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/visitor-validator.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="visitor-validator">visitor validator</h1> + <h1 class="no_toc" id="visitor-validator">visitor validator</h1> + +<ul id="markdown-toc"> + <li><a href="#description" id="markdown-toc-description">Description</a></li> + <li><a href="#parameters" id="markdown-toc-parameters">Parameters</a></li> + <li><a href="#examples" id="markdown-toc-examples">Examples</a></li> +</ul> <h2 id="description">Description</h2> -<p>The VisitorFieldValidator allows you to forward validation to object properties of your action using the object’s own validation files. This allows you to use the <code class="highlighter-rouge">ModelDriven</code> development pattern and manage your validations for your models in one place, where they belong, next to your model classes. The VisitorFieldValidator can handle either simple Object properties, Collections of Objects, or Arrays.</p> +<p>The VisitorFieldValidator allows you to forward validation to object properties of your action using the object’s own +validation files. This allows you to use the <code class="highlighter-rouge">ModelDriven</code> development pattern and manage your validations for your models +in one place, where they belong, next to your model classes. The VisitorFieldValidator can handle either simple Object +properties, Collections of Objects, or Arrays.</p> <h2 id="parameters">Parameters</h2> @@ -145,22 +154,22 @@ <h2 id="examples">Examples</h2> -<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code><validators> - <!-- Plain Validator Syntax --> - <validator type="visitor"> - <param name="fieldName">user</param> - <param name="context">myContext</param> - <param name="appendPrefix">true</param> - </validator> +<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><validators></span> + <span class="c"><!-- Plain Validator Syntax --></span> + <span class="nt"><validator</span> <span class="na">type=</span><span class="s">"visitor"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"fieldName"</span><span class="nt">></span>user<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"context"</span><span class="nt">></span>myContext<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"appendPrefix"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"></validator></span> - <!-- Field Validator Syntax --> - <field name="user"> - <field-validator type="visitor"> - <param name="context">myContext</param> - <param name="appendPrefix">true</param> - </field-validator> - </field> -</validators> + <span class="c"><!-- Field Validator Syntax --></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"user"</span><span class="nt">></span> + <span class="nt"><field-validator</span> <span class="na">type=</span><span class="s">"visitor"</span><span class="nt">></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"context"</span><span class="nt">></span>myContext<span class="nt"></param></span> + <span class="nt"><param</span> <span class="na">name=</span><span class="s">"appendPrefix"</span><span class="nt">></span>true<span class="nt"></param></span> + <span class="nt"></field-validator></span> + <span class="nt"></field></span> +<span class="nt"></validators></span> </code></pre></div></div> </section> diff --git a/output/core-developers/zero-configuration.html b/output/core-developers/zero-configuration.html deleted file mode 100644 index c9cbb18..0000000 --- a/output/core-developers/zero-configuration.html +++ /dev/null @@ -1,274 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"/> - <meta name="viewport" content="width=device-width, initial-scale=1.0"/> - <meta name="Date-Revision-yyyymmdd" content="20140918"/> - <meta http-equiv="Content-Language" content="en"/> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - - <title>Zero Configuration</title> - - <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> - <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> - <link href="/css/main.css" rel="stylesheet"> - <link href="/css/custom.css" rel="stylesheet"> - <link href="/highlighter/github-theme.css" rel="stylesheet"> - - <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> - <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script> - <script type="text/javascript" src="/js/community.js"></script> -</head> -<body> - -<a href="http://github.com/apache/struts" class="github-ribbon"> - <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"> -</a> - -<header> - <nav> - <div role="navigation" class="navbar navbar-default navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle"> - Menu - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a> - </div> - <div id="struts-menu" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - <li class="dropdown"> - <a data-toggle="dropdown" href="#" class="dropdown-toggle"> - Home<b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <li><a href="/index.html">Welcome</a></li> - <li><a href="/download.cgi">Download</a></li> - <li><a href="/releases.html">Releases</a></li> - <li><a href="/announce.html">Announcements</a></li> - <li><a href="http://www.apache.org/licenses/">License</a></li> - <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li> - <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> - </ul> - </li> - <li class="dropdown"> - <a data-toggle="dropdown" href="#" class="dropdown-toggle"> - Support<b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <li><a href="/mail.html">User Mailing List</a></li> - <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li> - <li><a href="/security.html">Reporting Security Issues</a></li> - <li class="divider"></li> - <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li> - <li class="divider"></li> - <li><a href="/maven/project-info.html">Maven Project Info</a></li> - <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li> - <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li> - </ul> - </li> - <li class="dropdown"> - <a data-toggle="dropdown" href="#" class="dropdown-toggle"> - Documentation<b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <li><a href="/birdseye.html">Birds Eye</a></li> - <li><a href="/primer.html">Key Technologies</a></li> - <li><a href="/kickstart.html">Kickstart FAQ</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li> - <li class="divider"></li> - <li><a href="/getting-started/">Getting Started</a></li> - <li><a href="/security/">Security Guide</a></li> - <li><a href="/core-developers/">Core Developers Guide</a></li> - <li><a href="/tag-developers/">Tag Developers Guide</a></li> - <li><a href="/maven-archetypes/">Maven Archetypes</a></li> - <li><a href="/plugins/">Plugins</a></li> - <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li> - <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li> - <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li> - </ul> - </li> - <li class="dropdown"> - <a data-toggle="dropdown" href="#" class="dropdown-toggle"> - Contributing<b class="caret"></b> - </a> - <ul class="dropdown-menu"> - <li><a href="/youatstruts.html">You at Struts</a></li> - <li><a href="/helping.html">How to Help FAQ</a></li> - <li><a href="/dev-mail.html">Development Lists</a></li> - <li><a href="/contributors/">Contributors Guide</a></li> - <li class="divider"></li> - <li><a href="/submitting-patches.html">Submitting patches</a></li> - <li><a href="/builds.html">Source Code and Builds</a></li> - <li><a href="/coding-standards.html">Coding standards</a></li> - <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li> - <li class="divider"></li> - <li><a href="/release-guidelines.html">Release Guidelines</a></li> - <li><a href="/bylaws.html">PMC Charter</a></li> - <li><a href="/volunteers.html">Volunteers</a></li> - <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li> - <li><a href="/updating-website.html">Updating the website</a></li> - </ul> - </li> - <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li> - </ul> - </div> - </div> - </div> - </nav> -</header> - - -<article class="container"> - <section class="col-md-12"> - <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> - <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/zero-configuration.md" title="Edit this page on GitHub">Edit on GitHub</a> - <h1 id="zero-configuration">Zero Configuration</h1> - -<p><strong>(!) Deprecated Plugin</strong></p> - -<blockquote> - -</blockquote> - -<blockquote> - -</blockquote> - -<blockquote> - <p>Since 2.1 this plugin has been deprecated in favor of the <em>Convention Plugin</em></p> -</blockquote> - -<blockquote> - -</blockquote> - -<p>A “Zero Configuration” Struts application or plugin uses no additional XML or properties files. Metadata is expressed through convention and annotation.</p> - -<p>As this is a new feature, and still being field-tested, the documentation is sketchy. But, here’s what we have so far:</p> - -<h2 id="finding-actions">Finding Actions</h2> - -<p>Set the “actionPackages” filter init param to a comma-separated list of packages containing Action classes in web.xml. The packages and their subpackages will be scanned. All classes in the designated packages that implement Action or end in “Action” are examined. The latter is to allow for POJO Actions that don’t implement the Action interface.</p> - -<p><strong>Annotation Initialization actionPackages Filter Parameter in web.xml</strong></p> - -<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="nt"><filter></span> - <span class="nt"><filter-name></span>struts2<span class="nt"></filter-name></span> - <span class="nt"><filter-class></span>org.apache.struts2.dispatcher.FilterDispatcher<span class="nt"></filter-class></span> - <span class="nt"><init-param></span> - <span class="nt"><param-name></span>actionPackages<span class="nt"></param-name></span> - <span class="nt"><param-value></span>com.foo.bar,com.baz.quux<span class="nt"></param-value></span> - <span class="nt"></init-param></span> -<span class="nt"></filter></span> - -</code></pre></div></div> - -<p>We should probably add an action annotation, so that POJOs can itall with annotations.</p> - -<h2 id="examples">Examples</h2> - -<p>The only example right now is in the showcase, where the person package uses the classpath scanning configuration.</p> - -<h2 id="action-and-package-name">Action and Package name</h2> - -<p>The subpackage name makes the namespace, and the action class name makes the action name. If there is an “Action” suffix, it is dropped before creating the action name. Therefore, if the configured package is <em>com.myapp.actions</em> and the Action is <em>com.myapp.actions.</em> <strong>member</strong>.EditAction, you can access it via <a href="http://server/myapp/member/edit\.action">http://server/myapp/member/edit.action</a>. For multi-word actions, the first letter is lower-ca [...] - -<h2 id="results">Results</h2> - -<p><a href="#PAGE_43811">Results</a> are defined with the Result and Results annotations at the <strong>class level</strong>.</p> - -<h2 id="namespaces">Namespaces</h2> - -<p>The <a href="#PAGE_68488">Namespace Annotation</a> overrides the namespace.</p> - -<h2 id="parent-package">Parent Package</h2> - -<p>The <a href="#PAGE_68490">ParentPackage Annotation</a> configures the XWork package (an XWork package is created per Java package) to extend one or more defined packages. The best place for this annotation is on the package via the <code class="highlighter-rouge">package-info.java</code> file, however, for backward-compatibility, they can be specified on one or more Actions in the package. To determine which parent packages should be set, first, it looks for the package annotation, t [...] - -<p>For example, if you wanted to set the parent package for the <code class="highlighter-rouge">com.mycompany.myapp.actions</code> package, create this package-info.java file:</p> - -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="nd">@ParentPackage</span><span class="o">(</span><span class="s">"my-parent-package"</span><span class="o">)</span> -<span class="kn">package</span> <span class="n">com</span><span class="o">.</span><span class="na">mycompany</span><span class="o">.</span><span class="na">myapp</span><span class="o">.</span><span class="na">actions</span> - -<span class="kn">import</span> <span class="nn">org.apache.struts2.config.ParentPackage</span><span class="o">;</span> - -</code></pre></div></div> - -<p>To define multiple parent packages, list an array of package names:</p> - -<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -<span class="nd">@ParentPackage</span><span class="o">({</span><span class="s">"my-parent-package1, my-parent-package2"</span><span class="o">})</span> -<span class="kn">package</span> <span class="n">com</span><span class="o">.</span><span class="na">mycompany</span><span class="o">.</span><span class="na">myapp</span><span class="o">.</span><span class="na">actions</span> - -<span class="kn">import</span> <span class="nn">org.apache.struts2.config.ParentPackage</span><span class="o">;</span> - -</code></pre></div></div> - -<h2 id="feedback">Feedback</h2> - -<p>Stay tuned to this page for additional details and documentation. If you have a chance to try the zero configuration feature, please share any experiences on dev@ and here.</p> - -<h2 id="see-also">See also</h2> - -<ul> - <li> - <p><em>Zero Configuration Scanning</em> Use Case</p> - </li> - <li> - <p><em>Codebehind Plugin</em></p> - </li> - <li> - <p><em>RESTfulActionMapper</em></p> - </li> -</ul> - - </section> -</article> - - -<footer class="container"> - <div class="col-md-12"> - Copyright © 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>. - All Rights Reserved. - </div> - <div class="col-md-12"> - Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are - trademarks of The Apache Software Foundation. - </div> - <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div> -</footer> - -<script>!function (d, s, id) { - var js, fjs = d.getElementsByTagName(s)[0]; - if (!d.getElementById(id)) { - js = d.createElement(s); - js.id = id; - js.src = "//platform.twitter.com/widgets.js"; - fjs.parentNode.insertBefore(js, fjs); - } -}(document, "script", "twitter-wjs");</script> -<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script> - -<div id="fb-root"></div> - -<script>(function (d, s, id) { - var js, fjs = d.getElementsByTagName(s)[0]; - if (d.getElementById(id)) return; - js = d.createElement(s); - js.id = id; - js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; - fjs.parentNode.insertBefore(js, fjs); -}(document, 'script', 'facebook-jssdk'));</script> - - -</body> -</html>