ZK Directive: init"
m (correct highlight (via JWB)) |
|||
Line 8: | Line 8: | ||
There are two approaches: | There are two approaches: | ||
* Specify a class to do the application-specific initialization. | * Specify a class to do the application-specific initialization. | ||
− | * Specify a < | + | * Specify a <code>zscript</code> file to do the application-specific initialization. |
− | The initialization takes place before the page is evaluated and attached to a desktop. Thus, 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> methods will return null, when initializing. To retrieve the current desktop, you could use the <javadoc type="interface">org.zkoss.zk.ui.Execution</javadoc> interface. |
− | You could specify any number of the < | + | You could specify any number of the <code>init</code> directive. If you choose the first format, the specified class must implement the <javadoc type="interface">org.zkoss.zk.ui.util.Initiator</javadoc> interface. Once specified, an instance of the class is constructed and its <code>doInit</code> method is called, before the page is evaluated. |
− | In addition, the < | + | In addition, the <code>doFinally</code> method is called, after the page has been evaluated. The <code>doCatch</code> method is called if an exception occurs. Thus, this directive is not limited to initialization. You could use it for cleanup and error handling. |
− | If you choose the second format, the < | + | If you choose the second format, the <code>zscript</code> file is evaluated and the arguments (<code>arg0</code>, <code>arg1</code>,...) will be passed as a variable called <code>args</code> whose type is <code>Object[]</code>. |
− | 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"> |
Latest revision as of 10:40, 19 January 2022
This documentation is for an older version of ZK. For the latest one, please click here.
<?init class="..." [arg0="..."] [arg1="..."] [arg2="..."] [arg3="..."]?>
<?init zscript="..."?>
There are two approaches:
- Specify a class to do the application-specific initialization.
- 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
methods will return null, when initializing. To retrieve the current desktop, you could use the Execution interface.
You could specify any number of the init
directive. If you choose the first format, the specified class must implement the Initiator interface. Once specified, an instance of the class is constructed and its doInit
method is called, before the page is evaluated.
In addition, the doFinally
method is called, after the page has been evaluated. The doCatch
method is called if an exception occurs. Thus, this directive is not limited to initialization. You could use it for cleanup and error handling.
If you choose the second format, the zscript
file is evaluated and the arguments (arg0
, arg1
,...) will be passed as a variable called args
whose type is Object[]
.
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"?>
For more information, refer to ZK ZUML Reference .