2010-11-25 5 views
0

を変更せずに、クエリ文字列に「#」を置き換えます。私は私のJSP内の1つのクエリ文字列を持っている実際の値に

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

今、私は私がappIdことindex.jspにリクエストオブジェクトを使用してappIDをピックアップし使用しています私のDBからページを埋めるためにデータをプルアップします。

しかしmyBean.getApplicationApplication ##1のようなものを返すとき、私は、クエリが"#"に遭遇した後きっなっている確かので、空白の画面を取得しています。

私はreplace()メソッドを使用して"#"を置き換えることができますが、私は私のindex.jspページに再びrequestオブジェクトを使用しているアプリケーション名を引っ張っていますように私は、それが信頼できると良い見つけることはありません、とハッシュの交換が、それは醜いなるだろう。だから私は"#"を保持できる方法はありますか?

その他のすぐに使える解決策があれば幸いです。

答えて

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パラメータとして任意の文字列値を輸送することができますが、は、それを適切にエンコードする必要がありますか、あなたのURLがあなたがそれを経験しているだけのように、切断されます。

URLEncoderが定義されている場所それはだからあなたは、あなたのページで

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

文を必要とするだろう。

+0

値をエンコードした後、オブジェクト(URLDecoder.decode)をデコードしてオブジェクトobjectを保存する必要がありますか? – Rocker

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。それを実装する最も簡単な方法。 –

+0

+1、すてきで清潔。 – Tomalak

関連する問題