Revision: 560
http://svn.sourceforge.net/stripes/?rev=560&view=rev
Author: bengunter
Date: 2007-05-28 22:01:29 -0700 (Mon, 28 May 2007)
Log Message:
-----------
support Collections and arrays as parameter values
Modified Paths:
--------------
trunk/stripes/src/net/sourceforge/stripes/tag/LinkTagSupport.java
Modified: trunk/stripes/src/net/sourceforge/stripes/tag/LinkTagSupport.java
===================================================================
--- trunk/stripes/src/net/sourceforge/stripes/tag/LinkTagSupport.java
2007-05-29 03:57:53 UTC (rev 559)
+++ trunk/stripes/src/net/sourceforge/stripes/tag/LinkTagSupport.java
2007-05-29 05:01:29 UTC (rev 560)
@@ -14,6 +14,7 @@
*/
package net.sourceforge.stripes.tag;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -26,6 +27,7 @@
import net.sourceforge.stripes.exception.StripesJspException;
import net.sourceforge.stripes.format.Formatter;
import net.sourceforge.stripes.format.FormatterFactory;
+import net.sourceforge.stripes.util.CollectionUtil;
import net.sourceforge.stripes.util.UrlBuilder;
/**
@@ -180,7 +182,25 @@
// format parameters before appending to URL
Map<String, Object> parameters = new HashMap<String,
Object>(this.parameters);
for (Entry<String, Object> entry : parameters.entrySet()) {
- entry.setValue(format(entry.getValue()));
+ Object value = entry.getValue();
+ if (value != null && value.getClass().isArray()) {
+ Object[] raw = CollectionUtil.asObjectArray(value);
+ String[] formatted = new String[raw.length];
+ for (int i = 0; i < raw.length; i++)
+ formatted[i] = format(raw[i]);
+ value = formatted;
+ }
+ else if (value instanceof Collection) {
+ String[] formatted = new String[((Collection) value).size()];
+ int index = 0;
+ for (Object o : ((Collection) value))
+ formatted[index++] = format(o);
+ value = formatted;
+ }
+ else {
+ value = format(value);
+ }
+ entry.setValue(value);
}
builder.addParameters(parameters);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development