2013-08-16 42 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