You could have some custom initialization and cleanup when an application, a session, a desktop or an execution is instantiated or about to be destroyed.
There are two steps:
- Implements the corresponding interface. For example,
org.zkoss.zk.ui.util.WebAppInit for application’s initialization
- Register it in
WEB-INF/zk.xml
, or in Java.
Interfaces
Task | Interface |
---|---|
Application Init | |
Application Cleanup | |
Session Init | |
Session Cleanup | |
Desktop Init | |
Desktop Cleanup | |
Execution Init | |
Execution Cleanup |
Notice that ZK will instantiate an object from the class you registered for each callback. For example, an object is instantiated to invoke
, and another object instantiated to invoke
, even if you register a class that implements both
and
.
If you have something that is initialized in the init callback and have
to clean it up in the cleanup callback, you cannot store it as a data
member. Rather, you have to maintain it by yourself, such as storing it
in the desktop’s attributes
(
Registration
The registration in WEB-INF/zk.xml
is the same, no matter what
interface you implement:
<listener>
<listener-class>my.MyImplementation</listener-class>
</listener>
The registration in Java is done by
.
webapp.getConfiguration().addListener(my.MyImplementation.class);