2012-12-27 57 views
1

我有網址爲JSF2 H:outputLink的編碼冒號 ':' 爲%3A

/templates/includes/portal/Portal.xhtml?stparamdls=PRM0002:C:#{row.get("msm003_msa")} 

這是越來越理解爲

/templates/includes/portal/prashanthPortal.xhtml?stparamdls=PRM0002%3AC%3ADevloper 

誰能告訴我,爲什麼冒號得到解釋爲「 %3A'?

該文件的編碼是UTF-8。 預先感謝您。

回答

1

這是因爲:reserved characters in URL之一,因此需要通過百分比編碼進行轉義以防止網頁瀏覽器對其進行不同的解釋。當參數在<h:outputLink>中以<f:param>的形式提供時,JSF將自動爲您執行此操作。這種行爲是完全正常的和預期的。

如果您遇到技術問題,它是其他地方引起的,需要在其他位置解決,而不是在JSF <h:outputLink>中解決。

+0

您好我嘗試把參數放在f:param標籤中,但是當我在web inspector中打開這個鏈接時,它顯示出來就像'templates/includes/portal/Portal.xhtml?stparamdls = PRM0002%3AC%3ADevloper'因爲它實際上應該被編碼爲'templates/includes/portal/Portal.xhtml?stparamdls = PRM0002:C:Devloper'你能告訴我還有什麼可以做的嗎? – Pranjali

+0

同樣的答案仍然適用。這種行爲是完全可以預料的,不應該引起任何問題。它可能有助於您詳細闡述您的具體問題。 – BalusC

+0

''我已經添加了上述格式的參數,當我點擊h:commandLink時,它就像這個'http:// localhost:8080/eWeb /templates/includes/portal/prashanthPortal.xhtml?stparamdls = PRM0002%3AC%3ADevloper'還有什麼我做錯了嗎? – Pranjali