无法在JSP中循环映射
可能重复:
如何迭代Map中的每个条目?
我遵循此解决方案无效:https://stackoverflow.com/a/1835742/666468
我正在尝试输出此地图:
//protected Map<String,String> getImageTagAttributes()
Image image = new Image(resource);
for (Map<String, String> foo : image.getImageTagAttributes()) {
String key = foo.getKey();
String value = foo.getValue();
//output here
}
但是我得到这个错误: 只能迭代一个数组或java.lang.Iterable的实例
我也导入了java.util.Iterator,但没有运气。
ps我希望我可以安装和使用JSTL,但这不是我的电话。
不知道你是从哪里得到这个Image
类的,但是如果image.getImageTagAttributes()
返回Map<String, String>
那么可以试试这种方式
Image image = new Image(resource);
Map<String, String> map = image.getImageTagAttributes();
for (Map.Entry<String,String> foo : map.entrySet()) {
String key = foo.getKey();
String value = foo.getValue();
//output here
}
您无法为每个循环迭代Map。
获取地图对象密钥集,然后迭代它。
然后在for循环中尝试从地图中检索每个键的值。
因为这不是迭代Map的正确方法:
Image image = new Image(resource);
Map<String, String> foo = image.getImageTagAttributes();
Set<String> key = foo.keyset();
for ( k : keys ) {
String value = foo.get(k);
//output here
}
或者你可以这样说:
Image image = new Image(resource);
Map<String, String> foo = image.getImageTagAttributes();
Set<Map.Entry<String,String>> entries = foo.entrySet();
for(Map.Entry<String, String> e : entries){
String key = e.getKey();
String value = e.getValue();
//output
}
在我的答案中,我想这image.getImageTagAttributes();
返回一个Map<String,String>