Seam に組み込まれている URL 書き換えを使用できます。また、書き換えルールをより柔軟にしたい場合は、http://tuckey.org/urlrewrite/から UrlRewriteFilter を使用できます。以下の両方の例:
Seam の組み込みリライト(いずれにせよ、カバーの下で tuckey フィルターを使用する可能性があります)
まず、components.xmlファイルで URL 書き換えを有効にします。
<web:rewrite-filter view-mapping="*.seam"/>
次に、pages.xmlファイルに書き換えルールを追加します。
<page view-id="/home.xhtml">
<rewrite pattern="/home/{category}/{sub-category}/{sub-sub-category}" />
</page>
この場合、着信 URL は次のように機能します。
/home/vehicles/cars/fords
のリクエストであるかのように提供されます。
/home.seam?category=vehicles&sub-category=cars&sub-sub-category=fords
同様に、指定されたリクエスト パラメータがページにある場合、アウトバウンド URL が変換されます。
または、次のように Tucky UrlRewriteFilter を使用することもできます
ここから取得できる Tuckey UrlRewriteFilter jar をプロジェクトに追加します。
http://tuckey.org/urlrewrite/
次に、web.xmlファイルにフィルターを追加します。
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
最後に、 urlrewrite.xmlというファイルを WEB-INF ディレクトリに追加します。このファイルは、書き換えルールを定義します。おそらく、正規表現にある程度慣れたいと思うでしょう。ファイルは次のようになります。
^/home.seam?category=(. )&sub-category=(. )&sub-sub-category=(.*)$ /home/$1/$2/$3
<rule match-type="wildcard">
<from>/home\/$1\/$2\/$3</from>
<to type="redirect">/home.seam?category=$1&sub-category=$2&sub-sub-category=$3</to>
</rule>
Seam doco はこちら - Seam ドキュメント
Tucky UrlRewriteFilter doco はこちら - Tuckey RewriteFilter doco