動的に生成した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>