Home   Single Page

Enrich a Dynamically Generated Page with ZK FilterZKフィルターを使用して動的に生成したページをリッチにする

動的に生成したHTMLページ(例えば Velocity サーブレットの出力)をajax化にするときに、ZKフィルターで生成したページを処理します。
ZKフィルターを使用可能にするのに、以下に示したように、web.xmlを設定しなければなりません。

<filter>
    <filter-name>zkFilter</filter-name>    
    <filter-class>org.zkoss.zk.ui.http.DHtmlLayoutFilter</filter-class>    
    <init-param>    
        <param-name>extension</param-name>        
        <param-value>html</param-value>        
    </init-param>    
</filter>
        <filter-mapping><filter-name>zkFilter</filter-name><url-pattern>/my/dyna.jsp</url-pattern></filter-mapping>        
        <filter-mapping><filter-name>zkFilter</filter-name><url-pattern>/my/dyna/*</url-pattern></filter-mapping>        

ここで url-pattern はアプリケーションに依存します。extensionパラメーター(init-param)は動的な出力の言語を定義します。
デフォルトではhtmlです。xul/htmlの場合、拡張子としてzulを指定します。

【ヒント】: 大概の場合、ZK JSP タグを使うほうがは使い易く、ZKフィルターより少ししかメモリーを消耗しません。上級者のための章のパフォーマンスを改善のためのヒントを参照ください。

インクルードまたはフォワードからの出力にフィルターをかけたいときは、REQUEST そして/もしくは INCLUDEと共に dispatcher 要素を指定する事を忘れないでください。より詳しくはJava サーブレット 仕様 を参照ください。例えば、

<filter-mapping><filter-name>zkFilter</filter-name><url-pattern>/my/dyna/*</url-pattern>        
    <dispatcher>REQUEST</dispatcher>    
    <dispatcher>INCLUDE</dispatcher>    
    <dispatcher>FORWARD</dispatcher>    
    <dispatcher>ERROR</dispatcher></filter-mapping>