2013-05-28 42 views
1

這裏是在jsp中我的我的Java代碼:如何在chrome/firefox中處理雙重轉義?

custUrl="customer.action?custId=211&custAddressId=2341"; 

現在的javascript代碼:

function submit() { 
    window.location = "<c:out value='<%=custUrl%>' />"; 
    // here is generated javascript code 
    // window.location = "customer.action?custId=211&amp;custAddressId=2341" 
} 

Firefox和Chrome(IE不會做雙逃逸)都正被泄露已經轉義值(這就是爲什麼我我得到的第二個參數名稱爲amp;custAddressId而不是custAddressId)。

是否有任何通用的解決方案,我可以在firefox/chrome中處理雙重轉義?

UPDATE: - 所以底線是我想要逃離採用c預期字符:出(其發生) 但也希望避免雙而發送數據到服務器,其在發生 逸出某些瀏覽器的情況

+0

您能否詳細說明想要的角色,以及當您說「發生了什麼」時,您的意思? –

回答

0

默認情況下特殊字符會被<c:out>轉義。打開關閉轉義爲

<c:out value='<%=custUrl%>' escapeXml='false' /> 

與號&轉義爲在XML &amp;amp是&符號的縮寫。

這不是Firefox/Chrome的問題,因爲生成的最終HTML是相同的,而不管您使用哪個瀏覽器訪問您的網站。 IE的HTML源代碼查看器必須選擇以其非轉義形式顯示&符號。

+0

正確,但怎麼能''customer.action?custId = 211&custAddressId = 2341「;'轉到''customer.action?custId = 211 & custAddressId = 2341」','&'轉換爲'&'! – NINCOMPOOP

+0

&符號'&'在XML中以'&'轉義。 amp那裏代表&符號。 –

+0

好的。謝謝..... – NINCOMPOOP