init"
m |
m (correct highlight (via JWB)) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
<?init zscript="..."?> | <?init zscript="..."?> | ||
− | + | It defines an initiator that will be instantiated and called when the ZUML document is loaded. | |
− | The initialization | + | There are two formats. The first format is to specify a class that is used to do the application-specific initialization. The second format is to specify a <code>zscript</code> file to do the application-specific initialization. |
− | You could specify any number of the < | + | The initialization takes place before the page is evaluated and attached to a desktop. Thus, the <code>getDesktop</code>, <code>getId</code> and <code>getTitle</code> method will return null when initializing. To retrieve the current desktop, you could use <javadoc type="interface">org.zkoss.zk.ui.Execution</javadoc>. |
+ | |||
+ | You could specify any number of the <code>init</code> directive. The specified class must implement the <javadoc type="interface">org.zkoss.zk.ui.util.Initiator</javadoc> interface. | ||
<source lang="xml" > | <source lang="xml" > | ||
Line 18: | Line 20: | ||
</source> | </source> | ||
− | Since 3.6.2, you can use any (readable) name instead of < | + | Since 3.6.2, you can use any (readable) name instead of <code>arg0</code> and so on. For example, |
<source lang="xml"> | <source lang="xml"> | ||
Line 25: | Line 27: | ||
Then, <javadoc method="doInit(org.zkoss.zk.ui.Page, java.util.Map)" type="interface">org.zkoss.zk.ui.util.Initiator</javadoc> will be called with a map, which contains an entry, whose name is <code>root</code> and value <code>./abc</code>. | Then, <javadoc method="doInit(org.zkoss.zk.ui.Page, java.util.Map)" type="interface">org.zkoss.zk.ui.util.Initiator</javadoc> will be called with a map, which contains an entry, whose name is <code>root</code> and value <code>./abc</code>. | ||
+ | |||
+ | If you'd like to apply an initiator for every page, you don't need to specify it on every page. Rather, you could install a system-level initiator. For more information, please refer to [[ZK Developer's Reference/UI Patterns/Page Initialization#System-level_Initiator|ZK Developer's Reference: System-level Initiators]]. | ||
= class = | = class = | ||
Line 30: | Line 34: | ||
[Optional] | [Optional] | ||
− | A class name | + | A class name must implement the <javadoc type="interface">org.zkoss.zk.ui.util.Initiator</javadoc> interface. Unlike the <code>init</code> directive, the class name cannot be the class that is defined in zscript codes. |
− | An instance of the specified class is constructed and its < | + | An instance of the specified class is constructed and its <code>doInit</code> method is called in the Page Initial phase (i.e., before the page is evaluated). The <code>doFinally</code> method is called after the page has been evaluated. The <code>doCatch</code> method is called if an exception occurs during the evaluation. |
Thus, you could also use it for cleanup and error handling. | Thus, you could also use it for cleanup and error handling. | ||
Line 40: | Line 44: | ||
[Optional] | [Optional] | ||
− | A < | + | A <code>script</code> file that will be evaluated in the Page Initial phase. |
= arg0, arg1... = | = arg0, arg1... = | ||
Line 46: | Line 50: | ||
[Optional] | [Optional] | ||
− | You could specify any number of arguments. It will be passed to the < | + | You could specify any number of arguments. It will be passed to the <code>doInit</code> method if the first format is used. Since 3.6.2, you can use any name for the arguments, but, in the prior version, the first argument must be named as <code>arg0</code>, the second is <code>arg1</code> and so on. |
=Version History= | =Version History= |
Latest revision as of 13:28, 19 January 2022
Syntax:
<?init class="..." [arg0="..."] [arg1="..."] [arg2="..."] [arg3="..."]?> <?init zscript="..."?>
It defines an initiator that will be instantiated and called when the ZUML document is loaded.
There are two formats. The first format is to specify a class that is used to do the application-specific initialization. The second format is to specify a zscript
file to do the application-specific initialization.
The initialization takes place before the page is evaluated and attached to a desktop. Thus, the getDesktop
, getId
and getTitle
method will return null when initializing. To retrieve the current desktop, you could use Execution.
You could specify any number of the init
directive. The specified class must implement the Initiator interface.
<?init class="MyInit1"?>
<?init class="MyInit2"?>
Since 3.6.2, you can use any (readable) name instead of arg0
and so on. For example,
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./abc"?>
Then, Initiator.doInit(Page, Map) will be called with a map, which contains an entry, whose name is root
and value ./abc
.
If you'd like to apply an initiator for every page, you don't need to specify it on every page. Rather, you could install a system-level initiator. For more information, please refer to ZK Developer's Reference: System-level Initiators.
class
[Optional]
A class name must implement the Initiator interface. Unlike the init
directive, the class name cannot be the class that is defined in zscript codes.
An instance of the specified class is constructed and its doInit
method is called in the Page Initial phase (i.e., before the page is evaluated). The doFinally
method is called after the page has been evaluated. The doCatch
method is called if an exception occurs during the evaluation.
Thus, you could also use it for cleanup and error handling.
zscript
[Optional]
A script
file that will be evaluated in the Page Initial phase.
arg0, arg1...
[Optional]
You could specify any number of arguments. It will be passed to the doInit
method if the first format is used. Since 3.6.2, you can use any name for the arguments, but, in the prior version, the first argument must be named as arg0
, the second is arg1
and so on.
Version History
Version | Date | Content |
---|---|---|