action"

From Documentation
Line 9: Line 9:
 
It specifies the definition of [[ZEST Essentials/Quick Start/Action|an action]].  To map a pattern of URI to an action, you have to specify one action definition.
 
It specifies the definition of [[ZEST Essentials/Quick Start/Action|an action]].  To map a pattern of URI to an action, you have to specify one action definition.
  
The inner elements allowed are as follows:
+
Inside each action element, you could specify one or multiple result elements identifying the URI of the views.
 +
 
 +
<source lang="xml"
 +
<action path="/foo" class="my.Foo">
 +
    <result name="success">/WEB-INF/foo/used-if-success.zul</result>
 +
    <result>/WEB-INF/foo/used-if-no-matched-result</result>
 +
</action>
 +
</source>
  
 
{{ZESTEssentialsHeadingToc}}
 
{{ZESTEssentialsHeadingToc}}
Line 15: Line 22:
 
=Attributes=
 
=Attributes=
 
==The path Attribute==
 
==The path Attribute==
 +
[Required][EL ''not'' allowed]
 +
 +
It specifies the URI that matches this action. It could be a regular expression, such as <tt>/foo/hello[^/]*/do</tt>.
 +
 +
If the URI consists several logic segments, you could use [http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html#cg regular expression's grouping] to split them into several groups. For example, <tt>/([^/])*/do</tt> matches any URI ends with <tt>/do</tt> and the first segment is the text between the first and second slashes.
 +
 +
Then, you could use an implicit object called [[ZEST Essentials/EL Expressions/Implicit Objects/matches|matches]] to retrieve it in an EL expression:
 +
 +
<source lang="xml">
 +
${matches[1]}
 +
</source>
 +
 +
Notice that <tt>matches[0]</tt> is the whole pattern, while <tt>matches[1]</tt> is the first matched group (aka., segment).
  
 
==The class Attribute==
 
==The class Attribute==
 +
[Required][EL Allowed]
 +
 +
It specifies the name of the class of the action. It is used to instantiate an action when the path matches the request's URI. It could be any POJO class as long as it contains a method specified in the method attribute as described below.
 +
 +
Since EL expressions are allowed, you could specify a class's name depending on the request (such as HTTP method and parameters).
  
 
==The method Attribute==
 
==The method Attribute==
 +
[Optional][EL Allowed][Default: execute]
 +
 +
It specifies the method's name to execute. If omitted, <code>execute</code> is assumed.
 +
 +
There are two kind of signatures are allowed. Please refer to [[ZEST_Essentials/Quick_Start/Action#Signature_of_the_execute_Method|the Signature of the execute Method section]] for more information.
 +
 +
Since EL expressions are allowed, you could specify a method's name depending on the request (such as HTTP method and parameters).
  
 
=Version History=
 
=Version History=

Revision as of 09:52, 14 March 2011



Syntax:

<action path="regex" class="class-name" [method="method-name"]>

It specifies the definition of an action. To map a pattern of URI to an action, you have to specify one action definition.

Inside each action element, you could specify one or multiple result elements identifying the URI of the views.

    <result name="success">/WEB-INF/foo/used-if-success.zul</result>
    <result>/WEB-INF/foo/used-if-no-matched-result</result>
</action>


Subsections:


Attributes

The path Attribute

[Required][EL not allowed]

It specifies the URI that matches this action. It could be a regular expression, such as /foo/hello[^/]*/do.

If the URI consists several logic segments, you could use regular expression's grouping to split them into several groups. For example, /([^/])*/do matches any URI ends with /do and the first segment is the text between the first and second slashes.

Then, you could use an implicit object called matches to retrieve it in an EL expression:

${matches[1]}

Notice that matches[0] is the whole pattern, while matches[1] is the first matched group (aka., segment).

The class Attribute

[Required][EL Allowed]

It specifies the name of the class of the action. It is used to instantiate an action when the path matches the request's URI. It could be any POJO class as long as it contains a method specified in the method attribute as described below.

Since EL expressions are allowed, you could specify a class's name depending on the request (such as HTTP method and parameters).

The method Attribute

[Optional][EL Allowed][Default: execute]

It specifies the method's name to execute. If omitted, execute is assumed.

There are two kind of signatures are allowed. Please refer to the Signature of the execute Method section for more information.

Since EL expressions are allowed, you could specify a method's name depending on the request (such as HTTP method and parameters).

Version History

Last Update : 2011/03/14


Version Date Content
     



Last Update : 2011/03/14

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.