Commits

rainerh  committed 9ec55c3

Preparing 2.1.1 release
o updating wikidocs

git-svn-id: http://svn.opensymphony.com/svn/xwork/trunk@1772e221344d-f017-0410-9bd5-d282ab1896d7

  • Participants
  • Parent commits 97b472d

Comments (0)

Files changed (22)

File docs/wikidocs/After Annotation.html

 
 <h2><a name="AfterAnnotation-Parameters"></a>Parameters</h2>
 
-
-<p>no parameters</p>
-
+<p><table class='confluenceTable'>
+<tr>
+<th class='confluenceTh'> Parameter </th>
+<th class='confluenceTh'> Required </th>
+<th class='confluenceTh'> Default </th>
+<th class='confluenceTh'> Notes </th>
+</tr>
+<tr>
+<td class='confluenceTd'>priority</td>
+<td class='confluenceTd'>no</td>
+<td class='confluenceTd'>10</td>
+<td class='confluenceTd'>Priority order of method execution</td>
+</tr>
+</table></p>
 
 <h2><a name="AfterAnnotation-Examples"></a>Examples</h2>
 

File docs/wikidocs/AnnotationWorkflowInterceptor.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <h1><a name="AnnotationWorkflowInterceptor-AnnotationWorkflowInterceptorInterceptor"></a>AnnotationWorkflowInterceptor Interceptor</h1>
-
-<p><p>Invokes any annotated methods on the action. Specifically, it supports the following
-annotations:
-<ul>
-<li> &#64;Before - will be invoked before the action method. If the returned value is not null, it is
-returned as the action result code</li>
-<li> &#64;BeforeResult - will be invoked after the action method but before the result execution</li>
-<li> &#64;After - will be invoked after the action method and result execution</li>
-</ul>
-</p>
-<p/>
-<p>There can be multiple methods marked with the same annotations, but the order of their execution
-is not guaranteed. However, the annotated methods on the superclass chain are guaranteed to be invoked before the
-annotated method in the current class in the case of a Before annotations and after, if the annotations is
-After.</p></p>
-
-<h2><a name="AnnotationWorkflowInterceptor-Examples"></a>Examples</h2>
-
-<div class="code"><div class="codeContent">
-<pre class="code-java"><span class="code-keyword">public</span> class BaseAnnotatedAction {
- 	<span class="code-keyword">protected</span> <span class="code-object">String</span> log = "";
-
- 	@Before
- 	<span class="code-keyword">public</span> <span class="code-object">String</span> baseBefore() {
- 		log = log + <span class="code-quote">"baseBefore-"</span>;
- 		<span class="code-keyword">return</span> <span class="code-keyword">null</span>;
- 	}
- }
-
- <span class="code-keyword">public</span> class AnnotatedAction <span class="code-keyword">extends</span> BaseAnnotatedAction {
- 	@Before
- 	<span class="code-keyword">public</span> <span class="code-object">String</span> before() {
- 		log = log + <span class="code-quote">"before"</span>;
- 		<span class="code-keyword">return</span> <span class="code-keyword">null</span>;
- 	}
-
- 	<span class="code-keyword">public</span> <span class="code-object">String</span> execute() {
- 		log = log + <span class="code-quote">"-execute"</span>;
- 		<span class="code-keyword">return</span> Action.SUCCESS;
- 	}
-
- 	@BeforeResult
- 	<span class="code-keyword">public</span> void beforeResult() <span class="code-keyword">throws</span> Exception {
- 		log = log +<span class="code-quote">"-beforeResult"</span>;
- 	}
-
- 	@After
- 	<span class="code-keyword">public</span> void after() {
- 		log = log + <span class="code-quote">"-after"</span>;
- 	}
- }</pre>
-</div></div>
-<p>Configure a stack in xwork.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:</p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;interceptor-stack name=<span class="code-quote">"annotatedStack"</span>&gt;</span>
-<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"staticParams"</span>/&gt;</span>
-<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"params"</span>/&gt;</span>
-<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"conversionError"</span>/&gt;</span>
-<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"annotationWorkflow"</span>/&gt;</span>
-<span class="code-tag">&lt;/interceptor-stack&gt;</span></pre>
-</div></div>
-<p>Given an Action, AnnotatedAction, add a reference to the AnnotationWorkflowInterceptor interceptor.</p>
-<div class="code"><div class="codeContent">
+				    <h1><a name="AnnotationWorkflowInterceptor-AnnotationWorkflowInterceptorInterceptor"></a>AnnotationWorkflowInterceptor Interceptor</h1>
+
+<p><p>Invokes any annotated methods on the action. Specifically, it supports the following
+annotations:
+<ul>
+<li> &#64;Before - will be invoked before the action method. If the returned value is not null, it is
+returned as the action result code</li>
+<li> &#64;BeforeResult - will be invoked after the action method but before the result execution</li>
+<li> &#64;After - will be invoked after the action method and result execution</li>
+</ul>
+</p>
+<p/>
+<p>There can be multiple methods marked with the same annotations, but the order of their execution
+is not guaranteed. However, the annotated methods on the superclass chain are guaranteed to be invoked before the
+annotated method in the current class in the case of a Before annotations and after, if the annotations is
+After.</p></p>
+
+<h2><a name="AnnotationWorkflowInterceptor-Examples"></a>Examples</h2>
+
+<div class="code"><div class="codeContent">
+<pre class="code-java"><span class="code-keyword">public</span> class BaseAnnotatedAction {
+ 	<span class="code-keyword">protected</span> <span class="code-object">String</span> log = "";
+&lt;p/&gt;
+ 	@Before
+ 	<span class="code-keyword">public</span> <span class="code-object">String</span> baseBefore() {
+ 		log = log + <span class="code-quote">"baseBefore-"</span>;
+ 		<span class="code-keyword">return</span> <span class="code-keyword">null</span>;
+ 	}
+ }
+&lt;p/&gt;
+ <span class="code-keyword">public</span> class AnnotatedAction <span class="code-keyword">extends</span> BaseAnnotatedAction {
+ 	@Before
+ 	<span class="code-keyword">public</span> <span class="code-object">String</span> before() {
+ 		log = log + <span class="code-quote">"before"</span>;
+ 		<span class="code-keyword">return</span> <span class="code-keyword">null</span>;
+ 	}
+&lt;p/&gt;
+ 	<span class="code-keyword">public</span> <span class="code-object">String</span> execute() {
+ 		log = log + <span class="code-quote">"-execute"</span>;
+ 		<span class="code-keyword">return</span> Action.SUCCESS;
+ 	}
+&lt;p/&gt;
+ 	@BeforeResult
+ 	<span class="code-keyword">public</span> void beforeResult() <span class="code-keyword">throws</span> Exception {
+ 		log = log +<span class="code-quote">"-beforeResult"</span>;
+ 	}
+&lt;p/&gt;
+ 	@After
+ 	<span class="code-keyword">public</span> void after() {
+ 		log = log + <span class="code-quote">"-after"</span>;
+ 	}
+ }</pre>
+</div></div>
+<p>Configure a stack in xwork.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:</p>
+<div class="code"><div class="codeContent">
+<pre class="code-xml"><span class="code-tag">&lt;interceptor-stack name=<span class="code-quote">"annotatedStack"</span>&gt;</span>
+	<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"staticParams"</span>/&gt;</span>
+	<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"params"</span>/&gt;</span>
+	<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"conversionError"</span>/&gt;</span>
+	<span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"annotationWorkflow"</span>/&gt;</span>
+<span class="code-tag">&lt;/interceptor-stack&gt;</span></pre>
+</div></div>
+<p>Given an Action, AnnotatedAction, add a reference to the AnnotationWorkflowInterceptor interceptor.</p>
+<div class="code"><div class="codeContent">
 <pre class="code-xml"><span class="code-tag">&lt;action name=<span class="code-quote">"AnnotatedAction"</span> class=<span class="code-quote">"com.examples.AnnotatedAction"</span>&gt;</span>
-   <span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"annotationWorkflow"</span>/&gt;</span>
+   <span class="code-tag">&lt;interceptor-ref name=<span class="code-quote">"annotationInterceptor"</span>/&gt;</span>
    <span class="code-tag">&lt;result name=<span class="code-quote">"success"</span> type=<span class="code-quote">"freemarker"</span>&gt;</span>good_result.ftl<span class="code-tag">&lt;/result&gt;</span>
-<span class="code-tag">&lt;/action&gt;</span></pre>
-</div></div>
-<p><p>With the interceptor applied and the action executed on <code>AnnotatedAction</code> the log
+<span class="code-tag">&lt;/action&gt;</span></pre>
+</div></div>
+<p><p>With the interceptor applied and the action executed on <code>AnnotatedAction</code> the log
 instance variable will contain <code>baseBefore-before-execute-beforeResult-after</code>.</p></p>
 
                     			    </td>

File docs/wikidocs/Annotations.html

 </tr>
 <tr>
 <td class='confluenceTd'> <a href="After Annotation.html" title="After Annotation">After Annotation</a> </td>
-<td class='confluenceTd'> Marks a action method that needs to be executed before the result. </td>
+<td class='confluenceTd'> Marks an action method that needs to be executed after the main method and the result. </td>
 </tr>
 <tr>
 <td class='confluenceTd'> <a href="Before Annotation.html" title="Before Annotation">Before Annotation</a> </td>
-<td class='confluenceTd'> Marks a action method that needs to be executed before the main action method. </td>
+<td class='confluenceTd'> Marks an action method that needs to be executed before the main action method. </td>
 </tr>
 <tr>
 <td class='confluenceTd'> <a href="BeforeResult Annotation.html" title="BeforeResult Annotation">BeforeResult Annotation</a> </td>
-<td class='confluenceTd'> Marks a action method that needs to be executed before the result. </td>
+<td class='confluenceTd'> Marks an action method that needs to be executed before the result. </td>
 </tr>
 </tbody></table>
 

File docs/wikidocs/Before Annotation.html

 
 <h2><a name="BeforeAnnotation-Parameters"></a>Parameters</h2>
 
-
-<p>no parameters</p>
-
+<p><table class='confluenceTable'>
+<tr>
+<th class='confluenceTh'> Parameter </th>
+<th class='confluenceTh'> Required </th>
+<th class='confluenceTh'> Default </th>
+<th class='confluenceTh'> Notes </th>
+</tr>
+<tr>
+<td class='confluenceTd'>priority</td>
+<td class='confluenceTd'>no</td>
+<td class='confluenceTd'>10</td>
+<td class='confluenceTd'>Priority order of method execution</td>
+</tr>
+</table></p>
 
 <h2><a name="BeforeAnnotation-Examples"></a>Examples</h2>
 

File docs/wikidocs/BeforeResult Annotation.html

 
 <h2><a name="BeforeResultAnnotation-Parameters"></a>Parameters</h2>
 
-
-<p>no parameters</p>
-
+<p><table class='confluenceTable'>
+<tr>
+<th class='confluenceTh'> Parameter </th>
+<th class='confluenceTh'> Required </th>
+<th class='confluenceTh'> Default </th>
+<th class='confluenceTh'> Notes </th>
+</tr>
+<tr>
+<td class='confluenceTd'>priority</td>
+<td class='confluenceTd'>no</td>
+<td class='confluenceTd'>10</td>
+<td class='confluenceTd'>Priority order of method execution</td>
+</tr>
+</table></p>
 
 <h2><a name="BeforeResultAnnotation-Examples"></a>Examples</h2>
 

File docs/wikidocs/CreateIfNull Annotation.html

 
 <h2><a name="CreateIfNullAnnotation-Usage"></a>Usage</h2>
 
-<p><p/>The CreateIfNull annotation must be applied at field level.</p>
+<p><p/>The CreateIfNull annotation must be applied at field or method level.</p>
 
 <h2><a name="CreateIfNullAnnotation-Parameters"></a>Parameters</h2>
 

File docs/wikidocs/Element Annotation.html

 
 <h2><a name="ElementAnnotation-Usage"></a>Usage</h2>
 
-<p><p/>The Element annotation must be applied at field level.</p>
+<p><p/>The Element annotation must be applied at field or method level.</p>
 
 <h2><a name="ElementAnnotation-Parameters"></a>Parameters</h2>
 

File docs/wikidocs/ExpressionValidator Annotation.html

 <td class='confluenceTd'>i18n key from language specific properties file.</td>
 </tr>
 <tr>
-<td class='confluenceTd'>fieldName</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>&nbsp;</td>
-</tr>
-<tr>
 <td class='confluenceTd'>shortCircuit</td>
 <td class='confluenceTd'>no</td>
 <td class='confluenceTd'>false</td>
 <td class='confluenceTd'>If this validator should be used as shortCircuit.</td>
 </tr>
 <tr>
-<td class='confluenceTd'>type</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>ValidatorType.FIELD</td>
-<td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
-</tr>
-<tr>
 <td class='confluenceTd'> expression </td>
 <td class='confluenceTd'> yes </td>
 <td class='confluenceTd'>&nbsp;</td>

File docs/wikidocs/FieldExpressionValidator Annotation.html

 <td class='confluenceTd'>If this validator should be used as shortCircuit.</td>
 </tr>
 <tr>
-<td class='confluenceTd'>type</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>ValidatorType.FIELD</td>
-<td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
-</tr>
-<tr>
 <td class='confluenceTd'> expression </td>
 <td class='confluenceTd'> yes </td>
 <td class='confluenceTd'>&nbsp;</td>

File docs/wikidocs/Key Annotation.html

 
 <h2><a name="KeyAnnotation-Usage"></a>Usage</h2>
 
-<p><p/>The Key annotation must be applied at field level.</p>
+<p><p/>The Key annotation must be applied at field or method level.</p>
 
 <h2><a name="KeyAnnotation-Parameters"></a>Parameters</h2>
 

File docs/wikidocs/KeyProperty Annotation.html

 
 <h2><a name="KeyPropertyAnnotation-Usage"></a>Usage</h2>
 
-<p><p/>The KeyProperty annotation must be applied at field level.
+<p><p/>The KeyProperty annotation must be applied at field or method level.
 <p/>This annotation should be used with Generic types, if the key property of the key element needs to be specified.</p>
 
 <h2><a name="KeyPropertyAnnotation-Parameters"></a>Parameters</h2>

File docs/wikidocs/RegexFieldValidator Annotation.html

 <td class='confluenceTd'>ValidatorType.FIELD</td>
 <td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
 </tr>
+<tr>
+<td class='confluenceTd'>expression</td>
+<td class='confluenceTd'>yes</td>
+<td class='confluenceTd'>&nbsp;</td>
+<td class='confluenceTd'>The regex to validate the field value against.</td>
+</tr>
 </table></p>
 
 <h2><a name="RegexFieldValidatorAnnotation-Examples"></a>Examples</h2>

File docs/wikidocs/Reloading.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <p>It is possible to configure XWork2 to keeps reloading its configuration files (eg. xwork.xml, *<del>conversion.xml, *-validation.xml). This is done as follows:</del></p>
+				    <p>It is possible to configure XWork2 to keeps reloading its configuration files (eg. xwork.xml, *&#45;conversion.xml, *&#45;validation.xml). This is done as follows:</p>
 
 <div class="code"><div class="codeContent">
 <pre class="code-java">FileManager.setReloadingConfigs(<span class="code-keyword">true</span>)</pre>
 <p>Configuration reloading by default is "off".</p>
 
 <table cellpadding='5' width='85%' cellspacing='8px' class='warningMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="./icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p> Configuration reloading could cause performance issue. It might most probably causes the application to run considerably slow.</p></td></tr></table>
+<p> Obviously, this feature does not come for free. It will cause your application to run <b>considerably slower</b>.</p></td></tr></table>
 
                     			    </td>
 		    </tr>

File docs/wikidocs/StringRegexValidator Annotation.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <p>StringRegexValidator checks that a given String field, if not empty,
-matches the configured regular expression.</p>
+				    An error occurred: http://svn.opensymphony.com/svn/xwork/trunk/src/java/com/opensymphony/xwork2/validator/annotations/StringRegexValidator.java. The system administrator has been notified.
 
 <h2><a name="StringRegexValidatorAnnotation-Usage"></a>Usage</h2>
 
-<p><p/>The annotation must be applied at method level.</p>
+An error occurred: http://svn.opensymphony.com/svn/xwork/trunk/src/java/com/opensymphony/xwork2/validator/annotations/StringRegexValidator.java. The system administrator has been notified.
 
 <h2><a name="StringRegexValidatorAnnotation-Parameters"></a>Parameters</h2>
 
-<p><table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'> Parameter </th>
-<th class='confluenceTh'> Required </th>
-<th class='confluenceTh'> Default </th>
-<th class='confluenceTh'> Notes </th>
-</tr>
-<tr>
-<td class='confluenceTd'>message</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>field error message</td>
-</tr>
-<tr>
-<td class='confluenceTd'>key</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>i18n key from language specific properties file.</td>
-</tr>
-<tr>
-<td class='confluenceTd'>fieldName</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>&nbsp;</td>
-</tr>
-<tr>
-<td class='confluenceTd'>shortCircuit</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>false</td>
-<td class='confluenceTd'>If this validator should be used as shortCircuit.</td>
-</tr>
-<tr>
-<td class='confluenceTd'>type</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>ValidatorType.FIELD</td>
-<td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
-</tr>
-<tr>
-<td class='confluenceTd'> regex</td>
-<td class='confluenceTd'> yes </td>
-<td class='confluenceTd'> "." </td>
-<td class='confluenceTd'> String property.  The Regular Expression for which to check a match.  </td>
-</tr>
-<tr>
-<td class='confluenceTd'> caseSensitive</td>
-<td class='confluenceTd'> no </td>
-<td class='confluenceTd'> true </td>
-<td class='confluenceTd'> Whether the matching of alpha characters in the expression should be done case-sensitively. </td>
-</tr>
-</table></p>
+An error occurred: http://svn.opensymphony.com/svn/xwork/trunk/src/java/com/opensymphony/xwork2/validator/annotations/StringRegexValidator.java. The system administrator has been notified.
 
 <h2><a name="StringRegexValidatorAnnotation-Examples"></a>Examples</h2>
 
-<div class="code"><div class="codeContent">
-<pre class="code-java">@StringRegexValidator(message = <span class="code-quote">"Default message"</span>, key = <span class="code-quote">"i18n.key"</span>, shortCircuit = <span class="code-keyword">true</span>, regex = <span class="code-quote">"a regular expression"</span>, caseSensitive = <span class="code-keyword">true</span>)</pre>
-</div></div>
+An error occurred: http://svn.opensymphony.com/svn/xwork/trunk/src/java/com/opensymphony/xwork2/validator/annotations/StringRegexValidator.java. The system administrator has been notified.
 
 
                     			    </td>

File docs/wikidocs/Validation Annotation.html

 <th class='confluenceTh'> Notes </th>
 </tr>
 <tr>
-<td class='confluenceTd'>message</td>
+<td class='confluenceTd'>validations</td>
 <td class='confluenceTd'>yes</td>
 <td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>field error message</td>
-</tr>
-<tr>
-<td class='confluenceTd'>key</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>i18n key from language specific properties file.</td>
-</tr>
-<tr>
-<td class='confluenceTd'>fieldName</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>&nbsp;</td>
-<td class='confluenceTd'>&nbsp;</td>
-</tr>
-<tr>
-<td class='confluenceTd'>shortCircuit</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>false</td>
-<td class='confluenceTd'>If this validator should be used as shortCircuit.</td>
-</tr>
-<tr>
-<td class='confluenceTd'>type</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>ValidatorType.FIELD</td>
-<td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
+<td class='confluenceTd'></td>
 </tr>
 </table></p>
 

File docs/wikidocs/Validations Annotation.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <p><p>If you want to use several annotations of the same type, these annotation must be nested within the @Validations() annotation.</p></p>
+				    <p><p>If you want to use several annotations of the same type, these annotations must be nested within the @Validations() annotation.</p></p>
 
 <h2><a name="ValidationsAnnotation-Usage"></a>Usage</h2>
 
 <td class='confluenceTd'> Add list of IntRangeFieldValidators </td>
 </tr>
 <tr>
-<td class='confluenceTd'> requiredFields </td>
-<td class='confluenceTd'> no </td>
-<td class='confluenceTd'> Add list of RequiredFieldValidators </td>
-</tr>
-<tr>
 <td class='confluenceTd'> requiredStrings </td>
 <td class='confluenceTd'> no </td>
 <td class='confluenceTd'> Add list of RequiredStringValidators </td>
 <td class='confluenceTd'> Add list of VisitorFieldValidators </td>
 </tr>
 <tr>
-<td class='confluenceTd'> stringRegexs </td></p>
-
-<p><td class='confluenceTd'> no </td>
-<td class='confluenceTd'> Add list of StringRegexValidator </td>
-</tr>
-<tr>
 <td class='confluenceTd'> regexFields </td>
 <td class='confluenceTd'> no </td>
 <td class='confluenceTd'> Add list of RegexFieldValidator </td>

File docs/wikidocs/VisitorFieldValidator Annotation.html

 <td class='confluenceTd'>If this validator should be used as shortCircuit.</td>
 </tr>
 <tr>
-<td class='confluenceTd'>type</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>ValidatorType.FIELD</td>
-<td class='confluenceTd'>Enum value from ValidatorType. Either FIELD or SIMPLE can be used here.</td>
-</tr>
-<tr>
 <td class='confluenceTd'> context </td>
 <td class='confluenceTd'> no </td>
 <td class='confluenceTd'> action alias </td>

File docs/wikidocs/XWork Interceptors.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <p>Interceptor is a core component with XWork2. XWork2 has been designed with action interception in mind from ground up. Basically and interceptor wrappes around XWork2 Action. It is cappable of influencing the overall result, and hence affecting which result eventually get executed. In the process it have access to XWork2 Action, its proxy (ActionProxy), ActionInvocation etc. such that the interceptor could inspect the internals of XWork2 before comming up with a overall conclusion of what it should do.</p>
-
-<h3><a name="XWorkInterceptors-DefaultinterceptorsthatcomeswithXWork2"></a>Default interceptors that comes with XWork2</h3>
-
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;interceptor name=<span class="code-quote">"timer"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.TimerInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"logger"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.LoggingInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"chain"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ChainingInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"staticParams"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"params"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ParametersInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"modelDriven"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"scopedModelDriven"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"validation"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.ValidationInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"workflow"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"prepare"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.PrepareInterceptor"</span>/&gt;</span>
-         <span class="code-tag">&lt;interceptor name=<span class="code-quote">"conversionError"</span>  class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor"</span>/&gt;</span>
-<span class="code-tag">&lt;interceptor name=<span class="code-quote">"alias"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.AliasInterceptor"</span>/&gt;</span></pre>
+				    <p>Interceptor is a core component with XWork2. XWork2 has been designed with action interception in mind from ground up. Basically and interceptor wrappes around XWork2 Action. It is cappable of influencing the overall result, and hence affecting which result eventually get executed. In the process it have access to XWork2 Action, its proxy (ActionProxy), ActionInvocation etc. such that the interceptor could inspect the internals of XWork2 before comming up with a overall conclusion of what it should do.</p>
+
+<h3><a name="XWorkInterceptors-DefaultinterceptorsthatcomeswithXWork2"></a>Default interceptors that comes with XWork2</h3>
+
+<div class="code"><div class="codeContent">
+<pre class="code-xml"><span class="code-tag">&lt;interceptor name=<span class="code-quote">"timer"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.TimerInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"logger"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.LoggingInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"chain"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ChainingInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"staticParams"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"params"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ParametersInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"filterParams"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"removeParams"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ParameterRemoverInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"modelDriven"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"</span>/&gt;</span>
+&lt;interceptor name=<span class="code-quote">"scopedModelDriven"</span>
+             class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"</span>/&gt;
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"validation"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.ValidationInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"workflow"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"prepare"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.PrepareInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"conversionError"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"alias"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.AliasInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"exception"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"</span>/&gt;</span>
+<span class="code-tag">&lt;interceptor name=<span class="code-quote">"i18n"</span> class=<span class="code-quote">"com.opensymphony.xwork2.interceptor.I18nInterceptor"</span>/&gt;</span></pre>
 </div></div>
 
                     			    </td>

File docs/wikidocs/XWork Profiling.html

 
 <h2><a name="XWorkProfiling-Writeprofilingcode"></a>Write profiling code</h2>
 
-<p>One could extends the profiling feature provided by Struts2 in their web application as well. </p>
+<p>One could extend the profiling feature provided by Struts2 in their web application as well. </p>
 
 <h3><a name="XWorkProfiling-UsingUtilTimerStack%27spushandpop"></a>Using UtilTimerStack's push and pop</h3>
 <div class="code"><div class="codeContent">
 <pre class="code-xml">String logMessage = <span class="code-quote">"Log message"</span>;
    UtilTimerStack.push(logMessage);
    try {
-     // do some code
+       // do some code
    }
    finally {
-     UtilTimerStack.pop(logMessage); //this needs to be the same text as above
+       UtilTimerStack.pop(logMessage); // this needs to be the same text as above
    }</pre>
 </div></div>
 <h3><a name="XWorkProfiling-UsingaUtilTimerStack%27sProfileBlocktemplate"></a>Using a UtilTimerStack's ProfileBlock template</h3>

File docs/wikidocs/XWork Validation.html

     <span class="code-tag">&lt;validator name=<span class="code-quote">"required"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"requiredstring"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.RequiredStringValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"int"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"</span>/&gt;</span>
+    <span class="code-tag">&lt;validator name=<span class="code-quote">"long"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"</span>/&gt;</span>
+    <span class="code-tag">&lt;validator name=<span class="code-quote">"short"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"double"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"date"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"expression"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.ExpressionValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"conversion"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"stringlength"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"</span>/&gt;</span>
     <span class="code-tag">&lt;validator name=<span class="code-quote">"regex"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.RegexFieldValidator"</span>/&gt;</span>
+    <span class="code-tag">&lt;validator name=<span class="code-quote">"conditionalvisitor"</span> class=<span class="code-quote">"com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"</span>/&gt;</span>
 <span class="code-tag">&lt;/validators&gt;</span></pre>
 </div></div>
 

File docs/wikidocs/XWork2 Hello World Tutorial.html

 	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
 		    <tr>
 			    <td valign="top" class="pagebody">
-				    <p>The objective of this simple 'Hello World' tutorial is to be a gentle introduction of the components in xwork2. It shows how to execute a command (an action) that simply prints out 'Hello World' the XWork 2 way.</p>
+				    <p>The objective of this simple 'Hello World' tutorial is to be a gentle introduction of the components in xwork2. <br/>
+It shows the required libraries and how to execute a command (an action) that simply prints out 'Hello World' the XWork 2 way.</p>
 
-<h2><a name="XWork2HelloWorldTutorial-Step1%3AWriteupxwork.xml"></a>Step 1: Write up xwork.xml</h2>
+<h2><a name="XWork2HelloWorldTutorial-Step1%3APrepareProjectLibraries"></a>Step 1: Prepare Project Libraries</h2>
+
+<p>&nbsp;You need the following two libraries:</p>
+<ul>
+	<li>ognl-2.6.11.jar (or ognl.jar)</li>
+	<li>xwork-2.1.0.jar (or xwork.jar)</li>
+</ul>
+
+
+<h2><a name="XWork2HelloWorldTutorial-Step2%3AWriteupxwork.xml"></a>Step 2: Write up xwork.xml</h2>
 
 <p>The <tt>xwork.xml</tt> configuration file, in this case named <tt>xwork-hello-world.xml</tt>, defines a simple package that contains one action and a simple result that prints the data to the console.</p>
 <div class="code"><div class="codeContent">
 <span class="code-tag">&lt;/xwork&gt;</span></pre>
 </div></div>
 
-<h2><a name="XWork2HelloWorldTutorial-Step2%3ACodeitup"></a>Step 2: Code it up</h2>
+<h2><a name="XWork2HelloWorldTutorial-Step3%3ACodeitup"></a>Step 3: Code it up</h2>
 
 <p>Next, we need to write the Java code that will initialize XWork and execute our action.  The entry point into our application will be a class titled <tt>com.opensymphony.xwork2.showcase.helloworld.HelloWorldTutorial</tt>.</p>
 <div class="code"><div class="codeContent">
 37. 	}
 38. }</pre>
 </div></div>
-<p>Lines 24-28 show the XWork framework being initialized with our configuration file.  Lines 30-33 show how we obtain an <tt>ActionProxy</tt> object that handles the Action, Interceptors, and Result execution.  Finally, in line 36, we execute XWork.</p>
+<p>Lines 24-28 show the XWork framework being initialized with our configuration file.  Lines 30-33 show how we obtain an <tt>ActionProxy</tt> object that handles the Action, Interceptors, and Result execution.  Finally, in line 36, we execute XWork.</p>
+
+<p><font color="#ff0000">NOTE: Between line 24 and 25 should come the following :</font> <font color="#ff0000"><b>confManager.addConfigurationProvider(new XWorkConfigurationProvider());</b></font></p>
+
+<h2><a name="XWork2HelloWorldTutorial-Step4%3ACreatetheResultandAction"></a>Step 4: Create the Result and Action</h2>
+
+
+<p>The action:</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java">01. /*
+02.  * Copyright (c) 2002-2006 by OpenSymphony
+03.  * All rights reserved.
+04.  */
+05. <span class="code-keyword">package</span> com.opensymphony.xwork2.showcase.helloworld;
+06. 
+07. <span class="code-keyword">import</span> org.apache.commons.logging.Log;
+08. <span class="code-keyword">import</span> org.apache.commons.logging.LogFactory;
+09. 
+10. <span class="code-keyword">import</span> com.opensymphony.xwork2.ActionSupport;
+11. 
+12. /**
+13.  * 
+14.  * @author tm_jee
+15.  * @version $Date$ $Id$
+16.  */
+17. <span class="code-keyword">public</span> class HelloWorldAction <span class="code-keyword">extends</span> ActionSupport {
+18. 
+19. 	<span class="code-keyword">private</span> <span class="code-keyword">static</span> <span class="code-keyword">final</span> <span class="code-object">long</span> serialVersionUID = 6874543345469426109L;
+20. 	
+21. 	<span class="code-keyword">private</span> <span class="code-keyword">static</span> <span class="code-keyword">final</span> Log _log = LogFactory.getLog(HelloWorldAction.class);
+22. 	
+23. 	<span class="code-keyword">private</span> <span class="code-object">String</span> message;
+24. 	
+25. 	<span class="code-keyword">public</span> <span class="code-object">String</span> getMessage() { <span class="code-keyword">return</span> message; }
+26. 	<span class="code-keyword">public</span> void setMessage(<span class="code-object">String</span> message) { <span class="code-keyword">this</span>.message = message; }
+27. 	
+28. 	@Override
+29. 	<span class="code-keyword">public</span> <span class="code-object">String</span> execute() <span class="code-keyword">throws</span> Exception {
+30. 		
+31. 		_log.debug(<span class="code-quote">"execute ..."</span>);
+32. 		
+33. 		message = <span class="code-quote">"Hello World"</span>;
+34. 		
+35. 		<span class="code-keyword">return</span> SUCCESS;
+36. 	}
+37. }</pre>
+</div></div>
+
+<p>The result:</p>
+
+
+<div class="code"><div class="codeContent">
+<pre class="code-java">01. /*
+02.  * Copyright (c) 2002-2006 by OpenSymphony
+03.  * All rights reserved.
+04.  */
+05. <span class="code-keyword">package</span> com.opensymphony.xwork2.showcase;
+06. 
+07. <span class="code-keyword">import</span> org.apache.commons.logging.Log;
+08. <span class="code-keyword">import</span> org.apache.commons.logging.LogFactory;
+09. 
+10. <span class="code-keyword">import</span> com.opensymphony.xwork2.ActionInvocation;
+11. <span class="code-keyword">import</span> com.opensymphony.xwork2.Result;
+12. <span class="code-keyword">import</span> com.opensymphony.xwork2.util.TextParseUtil;
+13. 
+14. 
+15. /**
+16.  * 
+17.  * @author tm_jee
+18.  * @version $Date$ $Id$
+19.  */
+20. <span class="code-keyword">public</span> class PrintToConsoleResult <span class="code-keyword">implements</span> Result {
+21. 
+22. 	<span class="code-keyword">private</span> <span class="code-keyword">static</span> <span class="code-keyword">final</span> Log _log = LogFactory.getLog(PrintToConsoleResult.class);
+23. 	
+24. 	<span class="code-keyword">private</span> <span class="code-keyword">static</span> <span class="code-keyword">final</span> <span class="code-object">long</span> serialVersionUID = -6173326554804520601L;
+25. 	
+26. 	<span class="code-keyword">private</span> <span class="code-object">String</span> param = <span class="code-quote">"whatsoever"</span>;
+27. 	
+28. 	<span class="code-keyword">public</span> void setParam(<span class="code-object">String</span> param) { <span class="code-keyword">this</span>.param = param; }
+29. 	<span class="code-keyword">public</span> <span class="code-object">String</span> getParam() { <span class="code-keyword">return</span> <span class="code-keyword">this</span>.param; }
+30. 	
+31. 	<span class="code-keyword">public</span> void execute(ActionInvocation invocation) <span class="code-keyword">throws</span> Exception {
+32. 		
+33. 		_log.debug(<span class="code-quote">"execute ..."</span>);
+34. 		
+35. 		<span class="code-object">String</span> result = TextParseUtil.translateVariables(param, invocation.getStack());
+36. 		
+37. 		<span class="code-object">System</span>.out.println(result);
+38. 	}
+39. }</pre>
+</div></div>
 
                     			    </td>
 		    </tr>

File docs/wikidocs/docs.pdf

Binary file modified.