Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP/JSTL将JavaBean返回的HashMap转换为字符串_Java_Jsp_Javabeans_El - Fatal编程技术网

JSP/JSTL将JavaBean返回的HashMap转换为字符串

JSP/JSTL将JavaBean返回的HashMap转换为字符串,java,jsp,javabeans,el,Java,Jsp,Javabeans,El,我不是JSP技术方面的专家,我在这里寻找一些帮助来从bean访问HashMap。我有一个java类,它返回一个Hashmap,并希望在JSP中访问Hashmap的键和值。 下面是我试过的 //jsp: <jsp:useBean id="mc" class="MyMapClassReturnsMap" /> <c:forEach items="${mc.getMap()}" var="mapkeyval"> <tr> <td><c:out v

我不是JSP技术方面的专家,我在这里寻找一些帮助来从bean访问HashMap。我有一个java类,它返回一个Hashmap,并希望在JSP中访问Hashmap的键和值。 下面是我试过的

//jsp:
<jsp:useBean id="mc" class="MyMapClassReturnsMap" /> 
<c:forEach items="${mc.getMap()}" var="mapkeyval">
<tr>
<td><c:out value="${mapkeyval.key}"></c:out></td>
</tr>
</c:forEach>

//Error:
javax.el.PropertyNotFoundException: Property 'key' not found on type java.lang.String
//jsp:
//错误:
javax.el.PropertyNotFoundException:在java.lang.String类型上找不到属性“key”
如果我从显示地图为字符串的mapkeyval页面中删除.key,则返回地图为字符串的页面。我不知道我遗漏了什么,但任何指点都将不胜感激

我确信我正在从我的类返回HashMap,下面是我的主要方法,它按预期工作

 HashMap<String, String> jname1 = new HashMap<String, String>();
  ..
  ..
 public static void main(String[] args) {
 MyMapClassReturnsMap ta = new MyMapClassReturnsMap();
 ta.searchFiles("root","CUST");
 for(Map.Entry<String, String> s: ta.jname1.entrySet())
 System.out.println("HashMap Values : "+ s.getKey() + " :" +s.getValue());
    }
HashMap jname1=newhashmap();
..
..
公共静态void main(字符串[]args){
MyMapClassReturnsMap ta=新的MyMapClassReturnsMap();
ta.搜索文件(“根文件”、“客户文件”);
对于(Map.Entry s:ta.jname1.entrySet())
System.out.println(“HashMap值:“+s.getKey()+”:“+s.getValue());
}
试试这个

<c:forEach items="${jname1 }" var="mapkeyval">


并为类中的“jname1”提供getter和setter方法

您100%确定您正在从
mc.Map
返回
Map
?问题是,如果您在
Map
上迭代,那么您的代码应该“正常工作”;主要名称:ta.jname1。真的一样吗?为什么不在main中使用ta.getMap()来验证它是否有效?