2013-08-16 45 views
0

我正在与JSF2和PrettyFaces创建'搜索引擎友好的网址'。
现在我面临一个问题,当我想在PrettyFaces创建一个新的url之后传递参数时,这些参数将被删除,我想避免这种情况。
通过PrettyFaces传递查询字符串

我会用一个例子解释:
打这个网址 目前时:
http://www.mysite.com/index.jsf?param1=value1&param2=value2
PrettyFaces后我得到这个网址:
http://www.mysite.com/

但我想它要这样,所以当点击这个网址时:
http://www.mysite.com/index.jsf?param1=value1&param2=value2
之后PrettyFaces我会得到这个网址:
http://www.mysite.com/?param1=value1

请注意:那我只是想传递的具体参数。从上面的例子中,只有param1应该通过。

我对 '漂亮-config.xml中' 配置:

<url-mapping>  
    <pattern>/</pattern>  
    <view-id>/jsp/index.jsf</view-id>  
</url-mapping> 
+0

我知道你想在重定向后从URL中删除一些参数,但是应该保留一些参数吗? – Lincoln

+0

@Lincoln - 是的,应该传递一些参数,并保留一些参数。但是,如果无法完成,我更愿意传递所有的查询字符串。 从 http://www.mysite.com/index.jsf?param1=value1¶m2=value2 至: http://www.mysite.com/param1=value1¶m2=value2 – choop

回答

1

实际上,我惊讶的是,查询字符串是被保留。我猜想其他事情正在发生,除了美貌外。你使用的是什么版本的PRettyFaces?我也猜测这个 PrettyFaces的问题,这是你使用的版本中的一个错误,但我认为这不太可能。

只有你粘贴的url-mapping应该做的是执行从“/”到“/jsp/index.jsf”的内部转发。它不会执行从“/index.jsf”到“/”的任何客户端重定向;这就是为什么我认为这里有别的东西在玩。 (参考代码:https://github.com/ocpsoft/rewrite/blob/master/config-prettyfaces/src/main/java/org/ocpsoft/rewrite/prettyfaces/UrlMappingRuleAdaptor.java#L213

关于剥离某些查询参数并留下其他人,然后我强烈建议看一下Rewrite框架(这是PrettyFaces的新核心),您可以使用它来构建非常自定义的重写规则:http://ocpsoft.org/prettyfaces/http://ocpsoft.org/rewrite/

我希望这有助于。

+0

感谢您的链接和信息。如果它适用于我,我会更新。 – choop

+0

好的。让我知道事情的后续。我会尽我所能确保我们得到这个工作。 – Lincoln