Home   Single Page

web.xmlとzk.xmlを設定

リッチレットの実装後、以下のステートメントを使用したzk.xmlの中でリッチレットを定義します。

<richlet>
        <richlet-name>Test</richlet-name><richlet-class>org.zkoss.zkdemo.TestRichlet</richlet-class>        
</richlet>

リッチレットを宣言すると、以下に示すように、richlet-mappingを使用して、リッチレットをいくつものURLにマッピングできます。

<richlet-mapping>
    <richlet-name>Test</richlet-name>    
    <url-pattern>/test</url-pattern>    
</richlet-mapping>
<richlet-mapping>
    <richlet-name>Test</richlet-name>    
    <url-pattern>/some/more/*</url-pattern>    
</richlet-mapping>

デフォルトではリッチレットは使用できません。リッチレットを使用可能にするには、web.xmlに以下の宣言を追加しなければなりません。
使用可能にした後、web.xmlを変更しないで、リッチレットを追加することができます。

<servlet-mapping><servlet-name>zkLoader</servlet-name><url-pattern>/zk/*</url-pattern></servlet-mapping>        

そして、http://localhost/zk/testにアクセスし、リッチレットを参照できます。

url-pattern要素中で指定されたURLは/で始まります。URIの最後は/*になっている場合は、同じプレフィックスのすべてのリクエストに一致します。
本当のリクエストを取得するには、現在のページのgetRequestP_athメソッドが返した値をチェックします。

public void service(Page page) {
    if ("/some/more/hi".equals(page.getRequestPath()) {    
        ...        
    }}    

【ヒント】:url-patternに/*を指定することで、マッピングされたリッチレットにすべてのURLをマップできます。