2010-11-25 67 views
0

我有一個查詢字符串在我的JSP:查詢字符串替換爲「#」不改變實際值

href='www.me-me.com/index.jsp?application=<%= 
    myBean.getApplication().replace("&","\\") 
%>&appId=<%= 
    myBean.getAppId() 
%>'>LINK 

現在我在index.jsp拿起appID使用請求對象,並使用該appId我從我的數據庫中提取數據以填充頁面。

但是,當myBean.getApplication返回類似Application ##1的東西時,我得到一個空白屏幕,肯定是因爲在遇到"#"後查詢變得越來越嚴重。

我可以使用replace()方法取代"#",但我不覺得可靠和好,因爲我使用的請求對象再次出現在我index.jsp頁拉動該應用程序的名稱,替換哈希將使難看。那麼有沒有辦法可以保留"#"

任何其他外的現成的溶液,將不勝感激。

回答

0

URL編碼的值是做正確的事。

href='www.me-me.com/index.jsp?application=<%= 
    URLEncoder.encode(myBean.getApplication(), "UTF-8") 
%>&appId=<%= 
    URLEncoder.encode(myBean.getAppId(), "UTF-8") 
%>'>LINK 

您可以傳輸任何字符串值作爲一個URL參數,但你必須正確編碼,或您的網址就會折斷,就像你正在經歷它。

,就需要在您的網頁

<%@ page import="java.net.*" %> 

聲明,因爲這是URLEncoder定義。

+0

編碼值後,我WUD需要將它們(URLDecoder.decode)進行解碼,同時將其存儲到請求對象??? – Rocker 2010-11-26 04:41:45

3

使用JSTLc:urlc:param

<c:url var="url" value="http://www.me-me.com/index.jsp"> 
    <c:param name="application" value="${myBean.application}" /> 
    <c:param name="appId" value="${myBean.appId}" /> 
</c:url> 

<a href="${url}">LINK</a> 

無需與老式小腳本費盡口舌。

+0

+1。最簡單的方法來實現它。 – 2010-11-26 08:07:51