action"
m |
|||
Line 26: | Line 26: | ||
It specifies the URI that matches this action. It could be a regular expression, such as <tt>/foo/hello[^/]*/do</tt>. | 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 | + | 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>/foo/([^/])*/do</tt> matches any URI starting with <tt>/foo</tt> and ending with <tt>/do</tt>. Furthermore, the text between the second and third slashes is considered as the first matched group. |
− | Then, you could use an implicit object called [[ZEST Essentials/EL Expressions/Implicit Objects/matches|matches]] to retrieve | + | Then, you could use an implicit object called [[ZEST Essentials/EL Expressions/Implicit Objects/matches|matches]] to retrieve the matched group in an EL expression: |
<source lang="xml"> | <source lang="xml"> |
Revision as of 10:14, 31 August 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.
<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>
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, /foo/([^/])*/do matches any URI starting with /foo and ending with /do. Furthermore, the text between the second and third slashes is considered as the first matched group.
Then, you could use an implicit object called matches to retrieve the matched group 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
Version | Date | Content |
---|---|---|