读书人

怎么遍历request.getParameterMap()里

发布时间: 2012-01-19 00:22:28 作者: rapoo

如何遍历request.getParameterMap()里面的值。
request.getParameterMap()这个返回的是一个map,我用map的键去取值用的是:

Map map = new HashMap();

map = request.getParameterMap();

String a = map.get("account_code").toString();

System.out.println(a);

运行结果:

[Ljava.lang.String;@17a7706

也就是说MAP里的值仍然是对象。

然后我改为:String a = String.valueOf(map.get("account_code"));

但是运行结果依然是这个。

我通过DEBUG看到这个map里面能够找到正确的键值对。但是就是遍历不出来。请问这个问题如何解决?

[解决办法]
map.get("account_code") 得到的是数组

String[] xx = (String[])map.get("account_code");

String a = String.valueOf(xx[0]);
[解决办法]
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
Object strObj = element.getValue();
}
[解决办法]
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
String[] value=(String[])element.getValue();

System.out.print(strKey.toString() +"=");
for(int i=0;i<value.length;i++){
System.out.print(value[i]+",");
}
System.out.println();
}
[解决办法]
四楼是正解。
引用
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
Object strObj = element.getValue();
}

如果你用System.out.println(element.getValue().getClass().getName());可以打印出该值的类型。然后再根据类型遍历一下就行了。
[解决办法]
我晕 map(String,String[]) 不是现成的么? 还用遍历?

只要没有 checkbox,你就可以 用value[0]得到


即使你要遍历,键和值 也是同步的,怎么还需要对应?

HashMap newMap = new HashMap();
for(Iterator iter = map.entrySet().iterator();iter.hasNext();){
Map.Entry element = (Map.Entry)iter.next();
Object strKey = element.getKey();
String[] value=(String[])element.getValue();

String valueStr="";
System.out.print(strKey.toString() +"=");
for(int i=0;i <value.length;i++){
System.out.print(value[i]+",");
valueStr += value[i] +",";
}
System.out.println();

newMap.put(strKey,valueStr);
}

读书人网 >J2EE开发

热点推荐