in velocity-tools-view/src/main/java/org/apache/velocity/tools/view/ViewImportSupport.java [536:576]
protected String mergeQueryStrings(String url)
{
Map<String, String[]> originalParameters = request.getParameterMap();
if (originalParameters.size() > 0)
{
StringBuilder builder = new StringBuilder(url);
Set<String> newParameterNames = new HashSet<String>();
int qm = url.indexOf('?');
if (qm != -1)
{
String[] newParameters = url.substring(qm + 1).split("&");
for (String newParam : newParameters)
{
int eq = newParam.indexOf('=');
if (eq != -1)
{
newParam = newParam.substring(eq);
}
newParameterNames.add(newParam);
}
}
char separator = ( qm == -1 ? '?' : '&' );
for (Map.Entry<String, String[]> entry : originalParameters.entrySet())
{
String key = entry.getKey();
if (!newParameterNames.contains(key))
{
key = URLEncoder.encode(key);
for (String value : entry.getValue())
{
builder.append(separator);
separator = '&';
builder.append(key).append('=').append(URLEncoder.encode(value));
}
}
}
url = builder.toString();
}
return url;
}