1

PrettyFaces でいくつかの URL を書き換えているときに、親の URL マッピングを使用してマッピングの組み合わせを作成していることに気付きました。

たとえば、たとえば 2 つのフィルタでニュースをフィルタリングするページを持つ JSF アプリケーションを想像してください。検索中、ページのURLはこのようになります

www.news.com/search.jsf?category=socials&topic=music&page=0

問題は、カテゴリとトピックがオプションのパラメーターであることです。すべての組み合わせに対してマッピングを作成する必要がありますか、またはこのようなことを行う方法はありますか (存在しないパラメーターが無視され、パスパラメーターが追加または見落とされない場合)?

<url-mapping id="searchResultList">
    <pattern value="/search/#{cat/}#{topic/}#{page/}"/>
    <view-id value="/pages/search.jsf"/>
</url-mapping>
4

1 に答える 1

3

検索ページネーションのような場合、通常はパスパラメータを使用することはお勧めしません(ここではクエリパラメータが適切です)が、それでもこのようなことをしたい場合は、いくつかの可能なアプローチの1つをとることができます。

  1. 各組み合わせのマッピングを記述します。これが最も信頼できるアプローチです。親マッピングは、複雑さを軽減するために使用できます。

    http://ocpsoft.org/docs/prettyfaces/3.3.2/en-US/html_single/#config.mapping.parents

  2. 正規表現で構成されたマッピングを記述し、カスタムアクションメソッドで動的パラメーターを手動で解析します。

    <url-mapping id = "searchResultList">
    <pattern value = "/ search /#{/.*/ cat}" />
    <view-id value = "/ pages / search.jsf" />
    <action>#{ urlParsingBean.parseMyURL} </ action>
    </ url-mapping>

これがお役に立てば幸いです。〜リンカーン

于 2012-08-12T06:52:45.823 に答える