コンポーネント、ページ、デスクトップ、セッションの中に保存された属性、値、リスナは直列化可能ならば、直列化されます。(それらに対応するコンポーネント、ページ、デスクトップ、セッションも)
直列化可能なオブジェクトの実装を簡単にするのに、特別なインターフェースが実装された場合、ZKは直列化する前と直列化復元した後に、直列化リスナを呼び出します。例えば、コンポーネントに対して、以下のようにイベントリスナを実装できます。
public MyListener implements EventListener, java.io.Serializable, ComponentSerializationListener { private transient Component _target; //no need to serialize it //ComponentSerializationListener// public willSerialize(Component comp) { } public didDeserialize(Component comp) { _target = comp; //restore it back } }
org.zkoss.zk.ui.util.ComponentSerializationListenerインターフェースはコンポーネントを直列化するときに使用されます。
同様にPageSerializationListener、 DesktopSerializationListener、 SessionSerializationListenerはページ、セッションそれぞれを直列化するときに使用されます。