0

我正在使用 JSF2 和PrettyFaces创建一个“SEO 友好的 URL”。
现在我遇到了一个问题,当我想在 PrettyFaces 创建一个新 url 之后传递参数时,这些参数将被删除,我想避免这种情况。

我将用一个例子来解释它:
目前点击这个网址时:
http
://www.mysite.com/index.jsf?param1=value1¶m2=value2 在PrettyFaces之后我得到这个网址:
http://www.mysite .com/

但我希望它是那样的,所以当点击这个网址时:
http
://www.mysite.com/index.jsf?param1=value1¶m2=value2 在PrettyFaces之后我会得到这个网址:
http://www。 mysite.com/?param1=value1

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

我在“pretty-config.xml”上的配置:

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

1 回答 1

1

我实际上很惊讶查询字符串没有被保留。我猜除了漂亮的面孔之外,还有其他事情正在发生。您使用的是哪个版本的 PRettyFaces?我也猜测这PrettyFaces 的问题,这是您使用的版本中的错误,但我认为这不太可能。

您粘贴的唯一应该做的是执行从“/”到“/jsp/index.jsf”的内部转发。url-mapping它不会做任何从“/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/

我希望这有帮助。

于 2013-08-19T14:23:56.973 回答