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 aa286c5 Updates production by Jenkins aa286c5 is described below commit aa286c52eff2eaad4c41b7fed1317f82c9a0d5fb Author: jenkins <bui...@apache.org> AuthorDate: Thu Nov 23 17:02:29 2017 +0000 Updates production by Jenkins --- content/core-developers/basic-validation.html | 7 +--- content/core-developers/client-validation.html | 7 +--- .../configuration-provider-and-configuration.html | 14 +------ content/core-developers/file-upload.html | 35 +++-------------- content/core-developers/freemarker-support.html | 26 ++----------- content/core-developers/glassfish-2-x.html | 6 +-- content/core-developers/jboss-5.html | 14 +------ content/core-developers/object-factory.html | 6 +-- .../core-developers/parent-package-annotation.html | 7 +--- .../pure-java-script-client-side-validation.html | 7 +--- content/core-developers/result-annotation.html | 31 ++++----------- content/core-developers/sunone-7-0.html | 27 +++---------- content/core-developers/weblogic-6-1.html | 21 +++------- content/core-developers/websphere.html | 14 +------ content/core-developers/zero-configuration.html | 7 +--- content/tag-developers/ajax-common-header.html | 7 +--- content/tag-developers/dojo-autocompleter-tag.html | 7 +--- content/tag-developers/form-tags.html | 26 ++----------- content/tag-developers/tag-syntax.html | 45 +++------------------- 19 files changed, 48 insertions(+), 266 deletions(-) diff --git a/content/core-developers/basic-validation.html b/content/core-developers/basic-validation.html index 8606999..87884fe 100644 --- a/content/core-developers/basic-validation.html +++ b/content/core-developers/basic-validation.html @@ -215,12 +215,7 @@ <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</p> - -<div class="highlighter-rouge"><pre class="highlight"><code><ActionClassName>-<ActionAliasName>-validation.xml -</code></pre> -</div> -<p>.</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="highlighter-rouge"><pre class="highlight"><code><span class="c"><!-- Add the following DOCTYPE declaration as first line of your XXX-validation.xml file: diff --git a/content/core-developers/client-validation.html b/content/core-developers/client-validation.html index bf4a2b6..77ae994 100644 --- a/content/core-developers/client-validation.html +++ b/content/core-developers/client-validation.html @@ -130,12 +130,7 @@ <p>Let’s create a Client-Side validation workflow, step by step.</p> -<p>(information) The <code class="highlighter-rouge">validate</code> attribute is set to</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>true -</code></pre> -</div> -<p>.</p> +<p>(information) The <code class="highlighter-rouge">validate</code> attribute is set to <code class="highlighter-rouge">true</code>.</p> <p>(information) Some themes do not support client-side validation.</p> diff --git a/content/core-developers/configuration-provider-and-configuration.html b/content/core-developers/configuration-provider-and-configuration.html index 66507dc..20ac6c7 100644 --- a/content/core-developers/configuration-provider-and-configuration.html +++ b/content/core-developers/configuration-provider-and-configuration.html @@ -128,12 +128,7 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/configuration-provider-and-configuration.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="configuration-provider--configuration">Configuration Provider & Configuration</h1> -<p>The ConfigurationProvider interface describes the framework’s configuration. By default, the framework loads its configurations via an XML document by using the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>StrutsXmlConfigurationProvider -</code></pre> -</div> -<p>. The provider can be configured through a Dispatcher’s <a href="dispatcher-listener.html">DispatcherListener</a>.</p> +<p>The ConfigurationProvider interface describes the framework’s configuration. By default, the framework loads its configurations via an XML document by using the <code class="highlighter-rouge">StrutsXmlConfigurationProvider</code>. The provider can be configured through a Dispatcher’s <a href="dispatcher-listener.html">DispatcherListener</a>.</p> <h2 id="example">Example</h2> @@ -156,12 +151,7 @@ <div class="highlighter-rouge"><pre class="highlight"><code>ConfigurationProvider </code></pre> </div> -<p>is the basic piece of configuration used to tie all the options together in</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>ConfigurationManager -</code></pre> -</div> -<p>. There is few different implementations that are already used internally by the Apache Struts:</p> +<p>is the basic piece of configuration used to tie all the options together in <code class="highlighter-rouge">ConfigurationManager</code>. There is few different implementations that are already used internally by the Apache Struts:</p> <ul> <li></li> diff --git a/content/core-developers/file-upload.html b/content/core-developers/file-upload.html index 1f1a215..f0d9389 100644 --- a/content/core-developers/file-upload.html +++ b/content/core-developers/file-upload.html @@ -198,12 +198,7 @@ <h2 id="basic-usage">Basic Usage</h2> -<p>The <code class="highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> class is included as part of the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>defaultStack -</code></pre> -</div> -<p>. As long as the required libraries are added to your project you will be able to take advantage of of the Struts 2 fileUpload capability. Configure an Action mapping for your Action class as you typically would.</p> +<p>The <code class="highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> class is included as part of the <code class="highlighter-rouge">defaultStack</code>. As long as the required libraries are added to your project you will be able to take advantage of of the Struts 2 fileUpload capability. Configure an Action mapping for your Action class as you typically would.</p> <p><strong>Example action mapping:</strong></p> @@ -544,12 +539,7 @@ struts.multipart.maxSize=2097152 <p><strong>Error Messages</strong></p> -<p>If an error occurs several field errors will be added assuming that the action implements <code class="highlighter-rouge">com.opensymphony.xwork2.ValidationAware</code> or extends</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>com.opensymphony.xwork2.ActionSupport -</code></pre> -</div> -<p>. These error messages are based on several i18n values stored in struts-messages.properties, a default i18n file processed for all i18n requests. You can override the text of these messages by providing text for the following keys:</p> +<p>If an error occurs several field errors will be added assuming that the action implements <code class="highlighter-rouge">com.opensymphony.xwork2.ValidationAware</code> or extends <code class="highlighter-rouge">com.opensymphony.xwork2.ActionSupport</code>. These error messages are based on several i18n values stored in struts-messages.properties, a default i18n file processed for all i18n requests. You can override the text of these messages by providing text for the following keys:</p> <table> <thead> @@ -588,12 +578,7 @@ struts.multipart.maxSize=2097152 <p><strong>Temporary Directories</strong></p> -<p>All uploaded files are saved to a temporary directory by the framework before being passed in to an Action. Depending on the allowed file sizes it may be necessary to have the framework store these temporary files in an alternate location. To do this change <code class="highlighter-rouge">struts.multipart.saveDir</code> to the directory where the uploaded files will be placed. If this property is not set it defaults to</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>javax.servlet.context.tempdir -</code></pre> -</div> -<p>. Keep in mind that on some operating systems, like Solaris,</p> +<p>All uploaded files are saved to a temporary directory by the framework before being passed in to an Action. Depending on the allowed file sizes it may be necessary to have the framework store these temporary files in an alternate location. To do this change <code class="highlighter-rouge">struts.multipart.saveDir</code> to the directory where the uploaded files will be placed. If this property is not set it defaults to <code class="highlighter-rouge">javax.servlet.context.tempdir</cod [...] <div class="highlighter-rouge"><pre class="highlight"><code>/tmp </code></pre> @@ -629,23 +614,13 @@ struts.multipart.maxSize=2097152 <div class="highlighter-rouge"><pre class="highlight"><code>struts.multipart.validationRegex </code></pre> </div> -<p> is used to define a RegEx to be used to validate if the incoming request is a multipart request. The request must use the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>POST -</code></pre> -</div> -<p> method and match the RegEx, by default the RegEx is defined as follow:</p> +<p> is used to define a RegEx to be used to validate if the incoming request is a multipart request. The request must use the <code class="highlighter-rouge">POST</code> method and match the RegEx, by default the RegEx is defined as follow:</p> <div class="highlighter-rouge"><pre class="highlight"><code>^multipart\\/form-data(; boundary=[a-zA-Z0-9]{1,70})? </code></pre> </div> -<p>Please read <a href="https://www\.w3\.org/Protocols/rfc1341/7\_2\_Multipart\.html">RFC1341</a>^[https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html] the <strong>Multipart section</strong> for more details, existing Struts</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>Multipart -</code></pre> -</div> -<p> parsers support only </p> +<p>Please read <a href="https://www\.w3\.org/Protocols/rfc1341/7\_2\_Multipart\.html">RFC1341</a>^[https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html] the <strong>Multipart section</strong> for more details, existing Struts <code class="highlighter-rouge">Multipart</code> parsers support only </p> <div class="highlighter-rouge"><pre class="highlight"><code>multipart/form-data </code></pre> diff --git a/content/core-developers/freemarker-support.html b/content/core-developers/freemarker-support.html index a460d81..e229356 100644 --- a/content/core-developers/freemarker-support.html +++ b/content/core-developers/freemarker-support.html @@ -128,26 +128,11 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/freemarker-support.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="freemarker-support">Freemarker Support</h1> -<p>Freemarker views can be rendered using the webwork result type</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>freemarker -</code></pre> -</div> -<p>.</p> +<p>Freemarker views can be rendered using the webwork result type <code class="highlighter-rouge">freemarker</code>.</p> <p><strong>Configure your action to use the freemarker result type</strong></p> -<p>The <code class="highlighter-rouge">freemarker</code> result type is defined in</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>struts-default.xml -</code></pre> -</div> -<p>, so normally you just include it, and define your resuts to use</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>type="freemarker" -</code></pre> -</div> -<p>.</p> +<p>The <code class="highlighter-rouge">freemarker</code> result type is defined in <code class="highlighter-rouge">struts-default.xml</code>, so normally you just include it, and define your resuts to use <code class="highlighter-rouge">type="freemarker"</code>.</p> <div class="highlighter-rouge"><pre class="highlight"><code><include file="struts-default.xml"/> ... @@ -168,12 +153,7 @@ <div class="highlighter-rouge"><pre class="highlight"><code>${name </code></pre> </div> -<p>} will result in</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>stack.findValue("name") -</code></pre> -</div> -<p>, which <em>generaly</em> results in <code class="highlighter-rouge">action.getName()</code> being executed.</p> +<p>} will result in <code class="highlighter-rouge">stack.findValue("name")</code>, which <em>generaly</em> results in <code class="highlighter-rouge">action.getName()</code> being executed.</p> <p>A search process is used to resolve the variable, searching the following scopes in order, until a value is found :</p> diff --git a/content/core-developers/glassfish-2-x.html b/content/core-developers/glassfish-2-x.html index 26cbf50..73b3faa 100644 --- a/content/core-developers/glassfish-2-x.html +++ b/content/core-developers/glassfish-2-x.html @@ -130,11 +130,7 @@ <p><strong>Convention plugin support</strong></p> -<p>To have proper support of the <em>Convention Plugin</em> in Glassfish 2.x when packed as EAR archive add the following constant to</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>struts.xml -</code></pre> -</div> +<p>To have proper support of the <em>Convention Plugin</em> in Glassfish 2.x when packed as EAR archive add the following constant to <code class="highlighter-rouge">struts.xml</code></p> <div class="highlighter-rouge"><pre class="highlight"><code><constant name="struts.convention.exclude.parentClassLoader" value="false" /> diff --git a/content/core-developers/jboss-5.html b/content/core-developers/jboss-5.html index f465567..52932a5 100644 --- a/content/core-developers/jboss-5.html +++ b/content/core-developers/jboss-5.html @@ -130,18 +130,8 @@ <p><strong>Convention plugin support</strong></p> -<p>To have proper support of the <em>Convention Plugin</em> in JBoss AS 5, especially when you put actions inside a jar (which is embedded in war or ear) and not directly into</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>WEB-INF/classes -</code></pre> -</div> -<p>, you must add the following line into <code class="highlighter-rouge">$JBOSS_HOME/bin/run.conf</code> or into</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>$JBOSS_HOME\bin\run.conf.bat -</code></pre> -</div> - -<p><strong>Linux/OSX - $JBOSS_HOME/bin/run.conf</strong></p> +<p>To have proper support of the <em>Convention Plugin</em> in JBoss AS 5, especially when you put actions inside a jar (which is embedded in war or ear) and not directly into <code class="highlighter-rouge">WEB-INF/classes</code>, you must add the following line into <code class="highlighter-rouge">$JBOSS_HOME/bin/run.conf</code> or into <code class="highlighter-rouge">$JBOSS_HOME\bin\run.conf.bat</code> +<strong>Linux/OSX - $JBOSS_HOME/bin/run.conf</strong></p> <div class="highlighter-rouge"><pre class="highlight"><code> JAVA_OPTS="$JAVA_OPTS -Djboss.vfs.forceVfsJar=true" diff --git a/content/core-developers/object-factory.html b/content/core-developers/object-factory.html index 42846b9..7f3b9c7 100644 --- a/content/core-developers/object-factory.html +++ b/content/core-developers/object-factory.html @@ -143,11 +143,7 @@ </tbody> </table> -<p>To register a customized ObjectFactory, add or edit an entry in</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>struts.properties -</code></pre> -</div> +<p>To register a customized ObjectFactory, add or edit an entry in <code class="highlighter-rouge">struts.properties</code></p> <div class="highlighter-rouge"><pre class="highlight"><code> struts.objectFactory=foo.bar.MyCustomObjectFactory diff --git a/content/core-developers/parent-package-annotation.html b/content/core-developers/parent-package-annotation.html index 1062fc6..b058281 100644 --- a/content/core-developers/parent-package-annotation.html +++ b/content/core-developers/parent-package-annotation.html @@ -128,12 +128,7 @@ <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/parent-package-annotation.md" title="Edit this page on GitHub">Edit on GitHub</a> <h1 id="parentpackage-annotation">ParentPackage Annotation</h1> -<p>The <code class="highlighter-rouge">@ParentPackage</code> annotation allows the definition of</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>Action -</code></pre> -</div> -<p>’s package for an action found via <a href="zero-configuration.html">Zero Configuration</a>.</p> +<p>The <code class="highlighter-rouge">@ParentPackage</code> annotation allows the definition of <code class="highlighter-rouge">Action</code>’s package for an action found via <a href="zero-configuration.html">Zero Configuration</a>.</p> <h2 id="usage">Usage</h2> diff --git a/content/core-developers/pure-java-script-client-side-validation.html b/content/core-developers/pure-java-script-client-side-validation.html index 133d52f..d23b7ed 100644 --- a/content/core-developers/pure-java-script-client-side-validation.html +++ b/content/core-developers/pure-java-script-client-side-validation.html @@ -181,12 +181,7 @@ some values will be considered acceptable by the JavaScript code but will be mar <p><strong>Additional Validator Support</strong></p> -<p>If you wish to add additional validator support beyond those listed, you may override the <em>xhtml theme</em> teamplte</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>form-close-validate.ftl -</code></pre> -</div> -<p>. This file contains the JavaScript that tries to validate each user-entered value from within the browswer. The <em>css_xhtml theme</em> extends the <em>xhtml theme</em> and therefore doesn’t have it’s own form-close-validate.ftl template.</p> +<p>If you wish to add additional validator support beyond those listed, you may override the <em>xhtml theme</em> teamplte <code class="highlighter-rouge">form-close-validate.ftl</code>. This file contains the JavaScript that tries to validate each user-entered value from within the browswer. The <em>css_xhtml theme</em> extends the <em>xhtml theme</em> and therefore doesn’t have it’s own form-close-validate.ftl template.</p> </section> </article> diff --git a/content/core-developers/result-annotation.html b/content/core-developers/result-annotation.html index 2a13520..90ff390 100644 --- a/content/core-developers/result-annotation.html +++ b/content/core-developers/result-annotation.html @@ -158,29 +158,17 @@ </div> <ul> - <li>name - Result name; default</li> -</ul> - -<div class="highlighter-rouge"><pre class="highlight"><code>Action.SUCCESS -</code></pre> -</div> - -<ul> + <li>name - Result name; default <code class="highlighter-rouge">Action.SUCCESS</code></li> <li> <p>value - Value of result (result destination)</p> </li> <li> - <p>type - Type of result; default</p> - </li> -</ul> + <p>type - Type of result; default <code class="highlighter-rouge">NullResult</code>. For example:</p> -<div class="highlighter-rouge"><pre class="highlight"><code>NullResult -</code></pre> -</div> -<p>. For example:</p> - -<ul> - <li></li> + <ul> + <li></li> + </ul> + </li> </ul> <div class="highlighter-rouge"><pre class="highlight"><code>NullResult.class @@ -270,12 +258,7 @@ public class HomeAction extends ActionSupport { <h2 id="results--defining-multiple-results">@Results – Defining Multiple Results</h2> -<p>Defines a set of results for an</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>Action -</code></pre> -</div> -<p>.</p> +<p>Defines a set of results for an <code class="highlighter-rouge">Action</code>.</p> <p><strong>Defining Multiple Results</strong></p> diff --git a/content/core-developers/sunone-7-0.html b/content/core-developers/sunone-7-0.html index a1fbe9c..608c98e 100644 --- a/content/core-developers/sunone-7-0.html +++ b/content/core-developers/sunone-7-0.html @@ -143,30 +143,13 @@ grant { <h2 id="granting-specific-permissions">Granting Specific Permissions</h2> <ul> - <li>Grant Write Permissions to</li> + <li>Grant Write Permissions to <code class="highlighter-rouge">java.util.PropertyPermission</code></li> + <li> + <p>Add <code class="highlighter-rouge">java.lang.reflect.ReflectPermission</code> “suppressAccessChecks”</p> + </li> + <li>Grant all permissions to <code class="highlighter-rouge">OgnlInvokePermission</code></li> </ul> -<div class="highlighter-rouge"><pre class="highlight"><code>java.util.PropertyPermission -</code></pre> -</div> - -<ul> - <li>Add</li> -</ul> - -<div class="highlighter-rouge"><pre class="highlight"><code>java.lang.reflect.ReflectPermission -</code></pre> -</div> -<p>“suppressAccessChecks”</p> - -<ul> - <li>Grant all permissions to</li> -</ul> - -<div class="highlighter-rouge"><pre class="highlight"><code>OgnlInvokePermission -</code></pre> -</div> - <div class="highlighter-rouge"><pre class="highlight"><code> grant { permission java.util.PropertyPermission "*", "read, write"; diff --git a/content/core-developers/weblogic-6-1.html b/content/core-developers/weblogic-6-1.html index 1a7a6f7..173afb1 100644 --- a/content/core-developers/weblogic-6-1.html +++ b/content/core-developers/weblogic-6-1.html @@ -149,17 +149,12 @@ <p>The framework has already been modified slightly to make the above effort possible:</p> <ol> - <li><strong>RequestLifecycleFilter</strong> is modified to retrieve its servlet context from the method</li> + <li><strong>RequestLifecycleFilter</strong> is modified to retrieve its servlet context from the method <code class="highlighter-rouge">getServletContext</code>. This method,</li> </ol> <div class="highlighter-rouge"><pre class="highlight"><code>getServletContext </code></pre> </div> -<p>. This method,</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>getServletContext -</code></pre> -</div> <p>, is then implemented to return the servlet context from where it is available in Servlet 2.3: the session object. The logical operation is unchanged, but now subclasses can override <code class="highlighter-rouge">getServletContext</code> to retrieve the servlet context from a different location as we’ll see below.</p> <ol> @@ -240,17 +235,11 @@ <p>Stop the server.</p> </li> <li> - <p>Delete the .wlnotdelete folder in</p> + <p>Delete the .wlnotdelete folder in <code class="highlighter-rouge">mydomain/applications</code>.</p> + </li> + <li> + <p>Restart the server.</p> </li> -</ol> - -<div class="highlighter-rouge"><pre class="highlight"><code>mydomain/applications -</code></pre> -</div> -<p>.</p> - -<ol> - <li>Restart the server.</li> </ol> </section> diff --git a/content/core-developers/websphere.html b/content/core-developers/websphere.html index c054a55..0076a41 100644 --- a/content/core-developers/websphere.html +++ b/content/core-developers/websphere.html @@ -363,12 +363,7 @@ System Property Value: true <p>If the ActionMapper determines that an Action should be invoked, the FilterDispatcher delegates control to the <strong>ActionProxy</strong>. The ActionProxy consults the framework <a href="#PAGE_14163">Configuration Files</a> manager (initialized from the <a href="#PAGE_13901">struts.xml</a> file). Next, the ActionProxy creates an <strong>ActionInvocation</strong>, which is responsible for the command pattern implementation. This includes invoking any <strong>Interceptors</strong> (th [...] -<p>Once the Action returns, the ActionInvocation is responsible for looking up the proper <strong>result</strong> associated with the <strong>Action result code</strong> mapped in</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>struts.xml -</code></pre> -</div> -<p>. The result is then executed, which often (but not always, as is the case for <a href="#PAGE_14214">Action Chaining</a>) involves a template written in <em>JSP</em> or <em>FreeMarker</em> to be rendered. While rendering, the templates can use the <em>Struts Tags</em> provided by the framework. Some of those components will work with the ActionMapper to render proper URLs for additional requests.</p> +<p>Once the Action returns, the ActionInvocation is responsible for looking up the proper <strong>result</strong> associated with the <strong>Action result code</strong> mapped in <code class="highlighter-rouge">struts.xml</code>. The result is then executed, which often (but not always, as is the case for <a href="#PAGE_14214">Action Chaining</a>) involves a template written in <em>JSP</em> or <em>FreeMarker</em> to be rendered. While rendering, the templates can use the <em>Struts Ta [...] <table> <tbody> @@ -385,12 +380,7 @@ System Property Value: true </tbody> </table> -<p>Interceptors are executed again (in reverse order, calling the <em>after</em> clause). Finally, the response returns through the filters configured in the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>web.xml -</code></pre> -</div> -<p>. If the ActionContextCleanUp filter is present, the FilterDispatcher will <em>not</em> clean up the ThreadLocal <strong>ActionContext</strong>. If the ActionContextCleanUp filter is not present, the FilterDispatcher will cleanup all ThreadLocals.</p> +<p>Interceptors are executed again (in reverse order, calling the <em>after</em> clause). Finally, the response returns through the filters configured in the <code class="highlighter-rouge">web.xml</code>. If the ActionContextCleanUp filter is present, the FilterDispatcher will <em>not</em> clean up the ThreadLocal <strong>ActionContext</strong>. If the ActionContextCleanUp filter is not present, the FilterDispatcher will cleanup all ThreadLocals.</p> </section> </article> diff --git a/content/core-developers/zero-configuration.html b/content/core-developers/zero-configuration.html index 15cc2f7..c9409ec 100644 --- a/content/core-developers/zero-configuration.html +++ b/content/core-developers/zero-configuration.html @@ -177,12 +177,7 @@ <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 [...] - -<div class="highlighter-rouge"><pre class="highlight"><code>myCustom.action -</code></pre> -</div> -<p>.</p> +<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> diff --git a/content/tag-developers/ajax-common-header.html b/content/tag-developers/ajax-common-header.html index eade10b..4746f70 100644 --- a/content/tag-developers/ajax-common-header.html +++ b/content/tag-developers/ajax-common-header.html @@ -1677,12 +1677,7 @@ Using valueNotifyTopics: __Caveats__ -+ The service that is producing the HTTP Response with JSON response to the Autocompleter tag must set the HTTP Header Response Content-Type to - -~~~~~~~ -text/json -~~~~~~~ -. JSON has its own MIME type, which this tag expects. ++ The service that is producing the HTTP Response with JSON response to the Autocompleter tag must set the HTTP Header Response Content-Type to `text/json`. JSON has its own MIME type, which this tag expects. + Since 2.0.9, there is a change in the value:key order. Now, the value **must** come before the key. diff --git a/content/tag-developers/dojo-autocompleter-tag.html b/content/tag-developers/dojo-autocompleter-tag.html index 7e2085d..041c2a8 100644 --- a/content/tag-developers/dojo-autocompleter-tag.html +++ b/content/tag-developers/dojo-autocompleter-tag.html @@ -1665,12 +1665,7 @@ Using valueNotifyTopics: __Caveats__ -+ The service that is producing the HTTP Response with JSON response to the Autocompleter tag must set the HTTP Header Response Content-Type to - -~~~~~~~ -text/json -~~~~~~~ -. JSON has its own MIME type, which this tag expects. ++ The service that is producing the HTTP Response with JSON response to the Autocompleter tag must set the HTTP Header Response Content-Type to `text/json`. JSON has its own MIME type, which this tag expects. + Since 2.0.9, there is a change in the value:key order. Now, the value **must** come before the key. diff --git a/content/tag-developers/form-tags.html b/content/tag-developers/form-tags.html index 812feb5..a42a121 100644 --- a/content/tag-developers/form-tags.html +++ b/content/tag-developers/form-tags.html @@ -507,24 +507,9 @@ __General Attributes__ __Value/Name Relationship__ -In many of the tags (except for the form tag) there is a unique relationship between the `name` and `value` attributes. The `name` attribute provides the name for the tag, which in turn is used as the control attribute when the form is submitted. The value submitted is bound to the +In many of the tags (except for the form tag) there is a unique relationship between the `name` and `value` attributes. The `name` attribute provides the name for the tag, which in turn is used as the control attribute when the form is submitted. The value submitted is bound to the `name`. In most cases, the `name` maps to a simple JavaBean property, such as "postalCode". On a submit, the value would be set to the property by calling the `setPostalCode` mutator. -~~~~~~~ -name -~~~~~~~ -. In most cases, the `name` maps to a simple JavaBean property, such as "postalCode". On a submit, the value would be set to the property by calling the `setPostalCode` mutator. - -Likewise, a form control could be populated by calling a JavaBean accessor, like - -~~~~~~~ -getPostalCode -~~~~~~~ -. In the expression language, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call - -~~~~~~~ -getPostalCode -~~~~~~~ -. +Likewise, a form control could be populated by calling a JavaBean accessor, like `getPostalCode`. In the expression language, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call `getPostalCode`. ~~~~~~~ @@ -535,12 +520,7 @@ getPostalCode ~~~~~~~ -However, since the tags imply a relationship between the `name` and - -~~~~~~~ -value -~~~~~~~ -, the `value` attribute is optional. If a `value` is not specified, by default, the JavaBean accessor is used instead. +However, since the tags imply a relationship between the `name` and `value`, the `value` attribute is optional. If a `value` is not specified, by default, the JavaBean accessor is used instead. ~~~~~~~ diff --git a/content/tag-developers/tag-syntax.html b/content/tag-developers/tag-syntax.html index d4405ac..8f91df4 100644 --- a/content/tag-developers/tag-syntax.html +++ b/content/tag-developers/tag-syntax.html @@ -150,21 +150,11 @@ </code></pre> </div> -<p>The expression language (<a href="#PAGE_14198">OGNL</a>) lets us call methods and evaluate properties. The method <code class="highlighter-rouge">getText</code> is provided by ActionSupport, which is the base class for most Actions. Since the Action is on the stack, we can call any of its methods from an expression, including</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>getText -</code></pre> -</div> -<p>.</p> +<p>The expression language (<a href="#PAGE_14198">OGNL</a>) lets us call methods and evaluate properties. The method <code class="highlighter-rouge">getText</code> is provided by ActionSupport, which is the base class for most Actions. Since the Action is on the stack, we can call any of its methods from an expression, including <code class="highlighter-rouge">getText</code>.</p> <h2 id="non-string-attributes">Non-String Attributes</h2> -<p>The HTTP protocol is text-based, but some tags have non-String attribute types, like <code class="highlighter-rouge">bool</code> or</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>int -</code></pre> -</div> -<p>. To make using non-String attributes intuitative, the framework evaulates <strong>all</strong> non-String attributes as an expression. In this case, you do not need to use the escape notation. (But, if you do anyway , the framework will just strip it off.)</p> +<p>The HTTP protocol is text-based, but some tags have non-String attribute types, like <code class="highlighter-rouge">bool</code> or <code class="highlighter-rouge">int</code>. To make using non-String attributes intuitative, the framework evaulates <strong>all</strong> non-String attributes as an expression. In this case, you do not need to use the escape notation. (But, if you do anyway , the framework will just strip it off.)</p> <p><strong>Evaluating booleans</strong></p> @@ -204,17 +194,7 @@ <h2 id="value-is-an-object">value is an Object!</h2> -<p>Most often, the <code class="highlighter-rouge">value</code> attribute is set automatically, since <code class="highlighter-rouge">name</code> attribute usually tells the framework which property to call to set the</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>value -</code></pre> -</div> -<p>. But, if there is a reason to set the <code class="highlighter-rouge">value</code> directly, be advised that</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>value -</code></pre> -</div> -<p><strong>is an Object</strong><strong><em>NOT</em> **</strong>a String**.</p> +<p>Most often, the <code class="highlighter-rouge">value</code> attribute is set automatically, since <code class="highlighter-rouge">name</code> attribute usually tells the framework which property to call to set the <code class="highlighter-rouge">value</code>. But, if there is a reason to set the <code class="highlighter-rouge">value</code> directly, be advised that <code class="highlighter-rouge">value</code><strong>is an Object</strong><strong><em>NOT</em> **</strong>a String**.</p> <p>(!) Since <code class="highlighter-rouge">value</code> is not a String, whatever is passed to <code class="highlighter-rouge">value</code> is evaluated as an expression - <strong>NOT</strong> a String literal.</p> @@ -226,17 +206,7 @@ </code></pre> </div> -<p>If a <code class="highlighter-rouge">textfield</code> is passed the value attribute</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>"ca" -</code></pre> -</div> -<p>, the framework will look for a property named</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>getCa -</code></pre> -</div> -<p>. Generally, this is not what we mean. What we mean to do is pass a literal String. In the expression language, literals are placed within quotes</p> +<p>If a <code class="highlighter-rouge">textfield</code> is passed the value attribute <code class="highlighter-rouge">"ca"</code>, the framework will look for a property named <code class="highlighter-rouge">getCa</code>. Generally, this is not what we mean. What we mean to do is pass a literal String. In the expression language, literals are placed within quotes</p> <p><strong>Passing a literal value the right way</strong></p> @@ -246,12 +216,7 @@ </code></pre> </div> -<p>Another approach would be to use the idiom</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>value="'ca'" -</code></pre> -</div> -<p>, but, in this case, using the expression notation is recommended.</p> +<p>Another approach would be to use the idiom <code class="highlighter-rouge">value="'ca'"</code>, but, in this case, using the expression notation is recommended.</p> <p>Boiled down, the tag attributes are evaluated using three rules.</p> -- To stop receiving notification emails like this one, please contact ['"commits@struts.apache.org" <commits@struts.apache.org>'].