2012-08-10 87 views
1

虽然用PrettyFaces重写了一些URL,但是我发现自己使用父url映射来组合映射。PrettyFaces和带有变量ammount的路径参数的URL映射

例如,想象一个带有页面的JSF应用程序,该页面用2个过滤器过滤新闻。在搜索过程中,页面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> 

回答

3

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

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

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

  2. 写正则表达式配置的映射和解析定制操作方法通过手的动态参数:

    < URL映射ID =“searchResultList” >
    <模式值= “/搜索/#{/.*/猫}” 值/ >
    <视图-ID = “/页/ search.jsf”/ >
    <行动>#{} urlParsingBean.parseMyURL < /动作>
    </URL映射>

我希望这是有帮助的。 〜林肯

+0

我正在对分页进行映射,并留下可选参数的查询参数。 一如既往的有用!谢谢林肯! – Gamb 2012-08-13 16:05:50

+0

不客气:)很高兴为您服务! – Lincoln 2012-08-14 17:35:02