PrettyFaces和url-mapping与变量ammount的路径参数

时间:2012-08-10 21:10:16

标签: url-rewriting prettyfaces

在使用PrettyFaces重写某些URL时,我发现自己使用父url-mappings进行映射组合。

例如,假设一个JSF应用程序的页面可以过滤新闻,例如2个过滤器。在搜索时,页面网址就像这样

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>

1 个答案:

答案 0 :(得分:3)

对于像搜索分页这样的情况,我通常不建议使用路径参数(查询参数在这里适用于IMO),但如果您仍想做这样的事情,那么您可以采取以下几种可能的方法之一:

  1. 为每个组合写一个映射。这是最可靠的方法。父映射可用于降低复杂性:

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

  2. 编写正则表达式配置的映射并手动解析动态参数:

    &lt; url-mapping id =“searchResultList”&gt;
          &lt; pattern value =“/ search /#{/.*/ cat}”/&gt;
          &lt; view-id value =“/ pages / search.jsf”/&gt;
          &lt;作用&GT;#{urlParsingBean.parseMyURL}&LT; /作用&gt;
    &LT; / URL映射&GT;

  3. 我希望这会有所帮助。 〜林肯