2010-12-13 4 views
2

)のURLをエンコードする標準的な方法は、あらかじめ定義されたベースURLとパラメータと値のマップを指定してURLをエンコードする標準的な方法を探しています。 は、理想的にはこの方法では、我々は、Apacheを使用しているところで、以下の値基本URLとMap <String、String>(パラメータが

"page.html?p1=v1&p2=v2" 

を持つことになり、次のスニペット

Map<String, String> params = new HashMap<String,String>(); 
params.put("p1", "v1"); 
params.put("p2", "v2"); 
String url = constructURL("page.html", params); 

とURLのように働くだろう

String constructURL(String baseURL, Map<String,String> parameters) 

のようなものとしてdeclaratedされますTomcatをクリックします。

答えて

2

JDKのURLEncoderは、ご使用のケースで有効です。このように:

String constructURL(String base, Map<String, String> params) { 
    StringBuilder url = new StringBuilder(base); 
    if(params != null && params.size() > 0) { 
    url.append("?"); 
    for(Map.Entry<String, String> entry : params.entrySet()) { 
     url.append(entry.getKey()); 
     url.append("="); 
     url.append(URLEncoder.encode(entry.getValue())); 
     url.append("&"); //not for the last one (but should be OK) 
    } 
    } 

return url.toString(); 
} 
+0

コードをお寄せいただきありがとうございます。しかし、自分の機能を構築することは、私が避けようとしていたものです。 – mvaz

関連する問題