Author: michiel
Date: 2009-06-02 13:41:54 +0200 (Tue, 02 Jun 2009)
New Revision: 35563
Modified:
mmbase/trunk/src/org/mmbase/framework/basic/BasicUrlConverter.java
Log:
MMB-1824
Modified: mmbase/trunk/src/org/mmbase/framework/basic/BasicUrlConverter.java
===================================================================
--- mmbase/trunk/src/org/mmbase/framework/basic/BasicUrlConverter.java
2009-06-02 11:41:31 UTC (rev 35562)
+++ mmbase/trunk/src/org/mmbase/framework/basic/BasicUrlConverter.java
2009-06-02 11:41:54 UTC (rev 35563)
@@ -47,7 +47,7 @@
* in (X)HTML.
* @return An URL relative to the root of this web application (i.e.
without a context path),
*/
- public static String getUrl(String page, Map<String, ?> params,
HttpServletRequest req, boolean escapeamp) {
+ public static String getUrl(String page, Map<? extends CharSequence, ?>
params, HttpServletRequest req, boolean escapeamp) {
if (log.isDebugEnabled()) {
if (log.isTraceEnabled()) {
log.trace("(static) constructing " + page + params + " because
", new Exception());
@@ -75,13 +75,14 @@
String connector = (show.indexOf("?") == -1 ? "?" : amp);
Writer w = new StringBuilderWriter(show);
- for (Map.Entry<String, ? extends Object> entry :
params.entrySet()) {
+ for (Map.Entry<? extends CharSequence, ? extends Object> entry :
params.entrySet()) {
Object value = entry.getValue();
+ String key = entry.getKey().toString();
if (value != null) {
if (value.getClass().isArray()) {
for (Object v : (Object[]) value) {
if (v == null ||
Casting.isStringRepresentable(v.getClass())) { // if not string representable,
that suppose it was an 'automatic' parameter which does need presenting on url
-
show.append(connector).append(entry.getKey()).append("=");
+ show.append(connector).append(key).append("=");
PARAM_ESCAPER.transform(new
StringReader(Casting.toString(v)), w);
connector = amp;
}
@@ -89,14 +90,14 @@
} else if (value instanceof Iterable) {
for (Object v : (Iterable<?>) value) {
if (v == null ||
Casting.isStringRepresentable(v.getClass())) {
-
show.append(connector).append(entry.getKey()).append("=");
+ show.append(connector).append(key).append("=");
PARAM_ESCAPER.transform(new
StringReader(Casting.toString(v)), w);
connector = amp;
}
}
} else {
if (Casting.isStringRepresentable(value.getClass())) {
-
show.append(connector).append(entry.getKey()).append("=");
+ show.append(connector).append(key).append("=");
PARAM_ESCAPER.transform(new
StringReader(Casting.toString(value)), w);
connector = amp;
}
@@ -157,7 +158,7 @@
Parameters frameworkParameters, boolean
escapeAmps, boolean action) {
HttpServletRequest request =
getUserRequest(frameworkParameters.get(Parameter.REQUEST));
State state = State.getState(request);
- Map<String, Object> map = new TreeMap<String, Object>();
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
if (log.isDebugEnabled()) {
log.debug("path '" + path + "' p:" + parameters + " fwp:" +
frameworkParameters + " " + state + " rp:" + request.getParameterMap());
}
@@ -173,7 +174,7 @@
if (toBlock != null) {
- map = new TreeMap<String, Object>(framework.prefix(state,
map));
+ map = new LinkedHashMap<String,
Object>(framework.prefix(state, map));
String prefix = framework.getPrefix(state);
log.debug("Using prefix " + prefix);
for (Object e : request.getParameterMap().entrySet()) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs